2节点集群开启共享订阅后,多个订阅客户端连接后,一直不停的重连,这个是什么原因呢?

2节点集群开启共享订阅后,多个订阅客户端连接后,一直不停的重连,这个是什么原因呢?
共享订阅策略是random,开启一个订阅服务器后,订阅的主题基本上是均衡的分布在两个节点上,如果在开启另一台订阅服务器,则不停的关闭连接和重连。
ps:在单个节点下,多个订阅者订阅共享订阅主题是没问题的。

实际上不应该做这么麻烦的事情,如果订阅者是一个服务端应用,以 MQTT 订阅的方式处理业务逻辑,那么几乎没有理由在该服务与 emqx 之间设置反向代理。如果有可能,最好将其直接放到 emqx 节点上,每个节点一个服务实例,这样可以很方便的使用 local 策略。

上面这段话可以理解为每一个emqx的节点上开一个订阅者服务端,然后共享订阅主题在每个节点的订阅者服务端都建立一个接连接(不同的clientId)订阅该共享订阅主题?

上面这段话可以理解为每一个emqx的节点上开一个订阅者服务端,然后共享订阅主题在每个节点的订阅者服务端都建立一个接连接(不同的clientId)订阅该共享订阅主题?

是的。


回到你的问题,多个客户端连接后不停重连。
建议你可以先开个日志追踪把这个客户端 id 追踪一下。目前没有更多信息,看现象猜测是他俩用了同一个 clientid 在互相踢。

明白了,是用的同一个clientid。
如果不在emqx节点上开订阅者服务端,共享订阅策略还可以使用local吧,只是可能会影响性能吧。
因为我目前使用了阿里的负载均衡(CLB)来分发到两个emqx节点,使用共享订阅主题,然后目前是一个订阅者服务端,每天都有这个 connection congested 出现,如果我再添加一个订阅者服务端,这个会有所缓解不。或者直接按照上述的方法,在emqx节点上开订阅者服务端。