客户端订阅/#,并发量大导致数据丢失

客户端需要订阅所有主题,并发量大的时候数据会丢失,集群,带宽比较小,后台报错如下:

  1. 单个客户端处理消息的速率就有极限(取决于你的具体实现)不过你实现得再厉害 ,也不可能一秒处理 1W 条消息(1W消息相当于 1 个消息只要 0.1 毫秒),当你消息量大叠加带宽有限,当然就处理不了这些消息客户端会断开。
  2. 但是你的错不是上面这个原因。这个是你订阅了#后,所以集群中其它节点的消息都会把所有的消息都转发给订阅了#的客户端所在的节点。节点间的通信会非常大。这个错是你的节点间的通信堵了,然后发不出去。你要加大节点间的带宽是够的。

但是退一万步讲,你都不应该用单个客户端订阅所有主题。

您好,如果我单节点不订阅/#,而是把所有主题都订阅一下,这样会解决问题吗?

不行的。这 2 个行为就是等同的么,消息量都一样。

每秒1w条 消息小(100 byte左右)没问题的