版本5.1.6,目前emqx部署了三个节点集群,连接数在14w不到,并且有三个java客户端进行共享订阅消费,昨天晚上控制台告警了其中两个java客户端。
然后重启了这两个客户端节点,但是告警依然存在,重启后的客户端id已经不是之前的了,想问下出现这个告警是因为什么,我感觉我们业务还没有达到消息堆积的情况,不涉及到cpu密集计算,只是解码进制数据,目前消息流入率在3500到6000之间。以及这个告警怎么让他消失,目前并没有跑到历史告警中。
目前查看了社区中的帖子,把java客户端的线程池线程数调大了一点,emqx的最大消息队列长度也调大到10000了,不知道还有其他需要调整的吗
conn_congestion
是 TCP 层出现了连接拥塞了,你检查下客户端是否短时间发起过大量重连
应该没有,这个是服务端上监听的程序。日志上提示的是这个
从这个日志来看,应该是对应的订阅端的消费能力不够,建议增加 java 客户端的数量,或者尝试更换下共享订阅的派发策略,5.1.6 里 round_robin 策略实现上有 bug, 可能导致负载不平衡
目前用的hash_clientid,这个分散应该比较均匀把
是的, hash_clientid
使用发送方的 clientid 来选着接收方。那这里出现消息堆积,还是因为出口方向流出比流入慢导致的,可能是客户端消费不及时,也可能是网络 IO 跟不上了
告警一直持续存在,服务端节点已经重启了,客户端id也跟之前不一样,请问这是啥问题,照理说告警应该到历史告警去了