镜头 MQTT 源连接器在其保持活动时间内空闲时不会将 PINGREQ 发送到 MQTT Broker
Lenses MQTT Source Connector doesn't send PINGREQ to MQTT Broker when idle in its keep-alive time
问题 -
我使用 Lenses 创建了一个 MQTT 源连接器。在数据发布到我的 MQTT Mosquitto 代理上并且无缝运行之前,连接器工作正常。现在,当我停止发布数据并且没有数据发送到 mqtt 源连接器时,大约 4-5 分钟后,如果我再次开始发布数据,即使连接器是,数据也不会进入我的源连接器仍处于 运行 状态。为了解决这个问题,我需要每次都重新启动我的连接器,这很糟糕。
我已经尝试过的方法 -
即使客户端 ID 是唯一的,我仍然每次都更改它以查看是否是问题所在。但是没用。
尝试将 keepalive 间隔增加到 10 分钟,但这也不起作用。
kafka 连接日志中很长一段时间都没有错误日志,但是在 15-20 次尝试中我收到了一次 Socket Connection Error
更新
深入研究该问题后,我发现我的源连接器(作为 mqtt 客户端)在其保持活动时间间隔内空闲时没有向我的 Mosquitto MQTT 代理发送任何 PINGREQ 数据包,而其他连接到我的 mqtt 代理的客户端在空闲时发送 PINGREQ 数据包,因此源连接器和 mqtt 代理之间的连接被断开。
我是否需要在我的 MQTT 源连接器属性文件中明确指定 属性 以在保持活动时间内向 MQTT 代理发送 PINGREQ 数据包,或者连接器是否自行处理?
经过长时间的研究,我发现 Lenses 连接器使用的默认保持活动时间 (5000) 是 秒 。 5000 秒太大了,所以 mqtt-broker 甚至在客户端在其保持活动时间内发送第一个 PINGREQ 之前就断开了客户端。我通过在我的连接器属性文件中添加行 connect.mqtt.keep.alive=5
将保持活动时间减少到 5 秒。这解决了问题。
问题 -
我使用 Lenses 创建了一个 MQTT 源连接器。在数据发布到我的 MQTT Mosquitto 代理上并且无缝运行之前,连接器工作正常。现在,当我停止发布数据并且没有数据发送到 mqtt 源连接器时,大约 4-5 分钟后,如果我再次开始发布数据,即使连接器是,数据也不会进入我的源连接器仍处于 运行 状态。为了解决这个问题,我需要每次都重新启动我的连接器,这很糟糕。
我已经尝试过的方法 -
即使客户端 ID 是唯一的,我仍然每次都更改它以查看是否是问题所在。但是没用。
尝试将 keepalive 间隔增加到 10 分钟,但这也不起作用。
kafka 连接日志中很长一段时间都没有错误日志,但是在 15-20 次尝试中我收到了一次 Socket Connection Error
更新
深入研究该问题后,我发现我的源连接器(作为 mqtt 客户端)在其保持活动时间间隔内空闲时没有向我的 Mosquitto MQTT 代理发送任何 PINGREQ 数据包,而其他连接到我的 mqtt 代理的客户端在空闲时发送 PINGREQ 数据包,因此源连接器和 mqtt 代理之间的连接被断开。
我是否需要在我的 MQTT 源连接器属性文件中明确指定 属性 以在保持活动时间内向 MQTT 代理发送 PINGREQ 数据包,或者连接器是否自行处理?
经过长时间的研究,我发现 Lenses 连接器使用的默认保持活动时间 (5000) 是 秒 。 5000 秒太大了,所以 mqtt-broker 甚至在客户端在其保持活动时间内发送第一个 PINGREQ 之前就断开了客户端。我通过在我的连接器属性文件中添加行 connect.mqtt.keep.alive=5
将保持活动时间减少到 5 秒。这解决了问题。