原文:http://blog.csdn.net/u010310183/article/details/51690876
先上图
如果客户端处理很慢的话,Broker会在之前发送消息的反馈之前
如果客户端处理很慢的话,Broker会在之前发送消息的反馈之前,继续发送新的消息到客户端。如果客户端依旧很慢的话,没有得到确认反馈的消息会持续增长。在这种情况下,Broker有可能会停止发送消息给消费者。当未被反馈的消息达到了prefetch
limit
设置的数字时,Broker将会停止给消费者发送新的消息。除非消费者开始给与反馈,否则得不到任何消息。
[html] view plain
copy
Default Prefetch Limit(默认预取限制):不同的消费者类型有不同的默认设置,具体设置如下:
Queue consumer
:默认1000
如果你使用一组消费者进行分散工作量的话(一个Queue对应多个消费者),典型的你应该把数字设置的小一些。如果一个消费者被允许可以聚集大量的未被确认的消息的话,会导致其它的消费者无事可做。同时,如果这个消费者出错的话,会导致大量的消息不能被处理,直到消费者恢复之前。
Queue browser
:默认500
Topic consumer
:默认32766
默认值32766是数字short的最大值,也是预取限制的最大值。
Durable topic subscriber
:默认100
通常你可以通过增加预取限制来改善性能。
<