MQTT Artemis 代理,设备在 IPV6 上时频繁重新连接

MQTT Artemis broker, frequent reconnections when the device is on IPV6

我正在使用 ActiveMQ Artemis Broker 并通过客户端应用程序发布到它。

观察到的行为:

详情:

客户端日志显示:

Idle network reply timeout.

代理日志显示传入的连接请求以及来自代理的 CONNACK,例如:

MQTT(): IN << CONNECT protocol=(MQTT, 4), hasPassword=false, isCleanSession=false, keepAliveTimeSeconds=60, clientIdentifier=b_001, hasUserName=false, isWillFlag=false
MQTT(): OUT >> CONNACK connectReturnCode=0, sessionPresent=true

什么 wire-shark (tcpdump) 告诉:

然后 3 次握手(客户端问候、更改密码规范、服务器问候)和上述再次重复。

根据数据包 5、6 和 7,我得出结论,连接正在被代理(服务器)终止。客户端确认终止,然后再次尝试重新连接,因为这是一个无限循环尝试重新连接和发布。

我是第一次看网络层面的分析,甚至是wireshark。不知道我的分析对不对。

也碰壁了,不知道为什么re-connection只在设备是IPV6的时候出现。我也没有看到任何 RST 指示连接终止。

经纪人也在发送 CONNACK(来自经纪人日志),但仍然没有发送任何数据,只是尝试重新连接,不确定原因。

还有,我看几个我看几个:

不确定这是否重要。

任何headers发生了什么事?

此问题是由于 LB 设置造成的,该设置的默认连接时间为 30 秒,小于客户端设置的连接超时时间。