客户端ping经常超时断开。keepalive 60s。Timed out waiting for a response from the server (32000)

  • EMQX 版本:3.2.4
  • 操作系统版本:centos7

其他

在客户端保持连接,只维持keepalive,sub到数据频率比较底情况下并且broker没有什么压力,客户端运行一段时间经常有ping超时。
客户端sdk使用paho
Timed out waiting for a response from the server (32000)
at org.eclipse.paho.client.mqttv3.internal.ExceptionHelper.createMqttException(ExceptionHelper.java:31)
at org.eclipse.paho.client.mqttv3.internal.ClientState.checkForActivity(ClientState.java:741)
at org.eclipse.paho.client.mqttv3.internal.ClientComms.checkForActivity(ClientComms.java:816)
at org.eclipse.paho.client.mqttv3.internal.ClientComms.checkForActivity(ClientComms.java:802)
at org.eclipse.paho.client.mqttv3.TimerPingSender$PingTask.run(TimerPingSender.java:79)
at java.util.TimerThread.mainLoop(Timer.java:555)
at java.util.TimerThread.run(Timer.java:505)

建议追踪一个客户端看看详细的报文收发日志,可以参考 日志与追踪

开始debug日志我怕影响性能。还有其它方式吗?您是不是觉得可能是ping请求没有到broker吗?

仅仅是追踪的话不需要开全局的 debug 日志。

是有这个可能,印象中 paho 的 keepalive 好像有点问题的,或者你可以抓个包看看。

抓踪某个些clientid的日志应该不会影响性能是吧。broker大量acl连接认证失败401.会影响已经正常连接的ping响应处理吗?

emqx_ctl trace start client支持批量多个客户端吗?
  1. 抓踪某个些clientid的日志应该不会影响性能是吧。
    不要同时追踪太多就可以了,追踪一两个不会有问题的。

  2. broker大量acl连接认证失败401.会影响已经正常连接的ping响应处理吗?
    不会影响

不支持,可以手动多次执行。