最近升级到RabbitMQ服务器时,在管理面板中为消费者报告了预取计数的变化。
通道预取计数和使用者预取计数之间有什么区别,如下所示?
我们正在运行一个设置,在该设置中,我们有多个线程消耗单个消费者/渠道。我们允许即时调整线程数和预取数。Model.BasicQos(prefetchLength, prefetchCount, global);我们应该在c#客户端上使用哪种参数组合进行调用?
can*_*Now 10
在这两种情况下,基本上预取意味着(每个通道或每个使用者)(允许的最大数量)未确认消息的数量。看看这里在书名下通道的预读设置质量(QoS) 。在通道预取的情况下要注意的重要事项(我仅引用上述链接)
一旦数量达到配置的数量,RabbitMQ将停止在通道上传递更多消息,除非已确认至少一个未处理的消息。
因此不再向该频道上的任何消费者发送消息!
可以在这里找到有关数字表示什么以及在设置两个预取值时会发生什么的漂亮示例,因此,您实际需要的值是任意的,但显然取决于多种因素,例如:发布频率,讯息,使用者人数等。
在屏幕截图中,您的客户预取似乎比渠道预取要大。现在,我不知道Web管理ui正在报告什么,也不知道Rabbitmq或c#库如何处理此问题,但是我想说,根据文档中的内容,消费者预取计数只能小于或等于通道预取。计数(我的意思是,当然是指它何时在运行时中实际使用,而不是在声明时使用)。
| 归档时间: |
|
| 查看次数: |
9378 次 |
| 最近记录: |