问题-
我已经使用镜片创建了一个MQTT源连接器。连接器可以正常工作,直到数据被发布到我的MQTT Mosquitto上,而且工作起来似乎是不可能的。现在,当我停止发布数据并且没有数据发送到mqtt源连接器时,大约4到5分钟后,如果我再次开始发布数据,即使连接器仍然处于运行状态,数据也不会进入我的源连接器。为了解决这个问题,我需要每次重新启动连接器,这是不好的。
方法我已经试过了-
更新
在深入研究这个问题之后,我发现我的源连接器(作为mqtt客户端的行为)在MQTT代理空闲时没有向mqtt代理发送任何PINGREQ数据包,而其他连接到mqtt代理的客户端则在PINGREQ数据包空闲时发送PINGREQ数据包,因此源连接器和mqtt代理之间的连接被丢弃。
我是否需要在MQTT源代码连接器属性文件中显式指定任何属性,以便在保持活动时间内向MQTT代理发送PINGREQ数据包,还是连接器本身处理?
发布于 2021-05-25 13:59:17
经过长时间的研究,我发现镜头连接器使用的默认保持时间(5000)是以秒为单位的。5000秒太大了,所以mqtt-broker甚至在第一个PINGREQ被客户端在其保持存活时间发送之前就已经断开了客户端的连接。通过在连接器属性文件中添加行connect.mqtt.keep.alive=5,我将保持活动时间缩短到了5秒。这解决了这个问题。
https://stackoverflow.com/questions/67606647
复制相似问题