部分客户端频繁上下线

环境信息

  • EMQ X 版本:4.1.2
  • 操作系统及版本:centos 7.2 , 2核8G
  • 使用的插件: auth_http, web_hook
  • 客户端接入数量: 4000

问题描述

emqx已稳定运行一个月左右, 今天突然出现几百个客户端周期性上线离线, 大概每隔1 - 8分钟上下线一次
配置文件只修改了tcp连接部分, 为了缓解同时上线压力, 调小了listener.tcp.external.max_conn_rate, 请教是否可能因为这个参数导致?

已排除项

客户端正常(切换到别的服务器连接稳定)
服务器资源正常, dashboard: 内存 230M/490M, CPU 1.41 / 1.63 / 1.50 (服务器top显示CPU和可用内存都剩很多)
auth_http和web_hook的web服务没问题(通过tcpdump抓包分析, http响应都很快, 5-10ms)

配置文件及日志

listener.tcp.external.acceptors = 8
listener.tcp.external.max_connections = 1024000
listener.tcp.external.max_conn_rate = 10
listener.tcp.external.active_n = 100

应该和这个参数无关,如果是达到了最大连接速率限制,那现象应该是客户端的连接时间变长,而不是上线后又断开。

切换到其他服务器的话,是指其他集群还是同一集群下的不同节点?如果是其他集群的话,是不是之前的集群有其他客户端使用相同的 Client ID 登录导致老的连接被踢。

是指切换到其他集群.
不是因为client id冲突导致, 发生频繁上下线后, 我通过对比和其他集群的配置, 临时修改了以下配置, 然后重启emqx服务后所有设备都稳定了.
现在不确定是因为重启服务临时正常了还是修改的这个配置真正解决了问题.

listener.tcp.external.max_conn_rate = 200
listener.tcp.external.active_n = 200