订阅者的消息队列满

一个消费者订阅多个主题,可是有时候订阅者的消息队列经常满1000,飞行窗口也满32,然后订阅者就就收不到消息了,请问什么原因会变满?怎么处理这样的问题?非常感谢,跪谢!!!

一般来说是订阅者处理消息太慢了,接受不过来,导致 broker 堆积消息了

客户端消费能力不足,会出现把客户端断开的情况吗?我这里客户端消费能力不足时连接就丢失

会的

请问,这种情况下 消息会堆积到飞行窗口和消息队列吗??? 如果是 那么我修改飞行窗口和消息队列的值 也没有用???

会的,会向跑满飞行窗口,然后在跑满消息队列,默认长度分别是 100,1000。

客户端进程只会在内存达到限制和消息队列*(这里的消息队列指的是erlang进程的消息队列,不是上面的消息队列)过长,会被杀掉。
配置见 emqx.conf

zone.external.force_gc_policy = 16000|16MB

那么通过修改这两个值,能不能增加可以储存的消息呢???

这两个值也没有什么限制呢?

这个值是只能16M吗?有没有什么限制?能不能修改???

这两个值只是调整了队列的长度,但是队列再长也会有满的时候。还是要提高消费速度,如果是消费能力不足,迟早还是要crash掉。

1 个赞