mqtt连接无法保持

环境

  • EMQX 版本:4.4.7
  • 操作系统版本:centos 7.9

重现此问题的步骤

  1. 使用mqttx工具连接emqx服务(8883端口),连接成功后,过一段时间连接会断开

预期行为

保持连接

实际行为

无法保持,以下是trace的日志,从日志来看,emqx在做完代理订阅后,没有心跳报文。

  1. 心跳时间间隔是mqttx连接的可以指定的。
  2. 心跳超时断开的原因是keepalive_timeout,而不是图中的ssl_close/normal。这个是表示客户端主动断开了连接。可以通过tcp_dump查看包验证。
    你这个场景有点像是是mqttx处于后台不能保持连接。需要在mqttx看看日志。

感谢回复,昨天已经定位出来了,是因为负载均衡的心跳时间小于了mqttx设置的心跳导致的

1 个赞

你好,我也遇到同样的问题了,请问你负载均衡用的HAProxy吗?负载均衡的心跳时间在哪设置

负载均衡我用的是阿里云的slb,直接在页面上设置就可以

好的,谢谢

我负载均衡用的HAProxy,也出现题主的问题了,每分钟断连一次,想问下HAProxy的心跳时间在哪设置,我试着改了haproxy.cfg里的几个参数,都没效果