首页 文章

通道预取计数和消费者预取计数之间有什么区别?

提问于
浏览
0

最近对RabbitMQ服务器的升级发现管理面板中为消费者报告的预取计数发生了变化 .

如下所示, Channels 预取计数和消费者预取计数之间有什么区别?

enter image description here

我们正在运行一个设置,我们有多个线程消耗单个消费者/渠道 . 我们允许线程计数和预取计数在运行中进行调整 . 我们应该使用c#客户端 Model.BasicQos(prefetchLength, prefetchCount, global); 调用的哪些参数组合?

1 回答

  • 4

    基本上,两种情况下的预取都意味着(最大允许)未确认消息的数量,每个通道或每个消费者 . 在 Headers Channels 预取设置(QoS)下查看here . 在 Channels 预取的情况下需要注意的重要事项(我只是引用上述链接)

    一旦数量达到配置的计数,RabbitMQ将停止在通道上发送更多消息,除非至少有一个未完成的消息被确认 .

    所以不再向该 Channels 的任何消费者发送消息!

    在设置两个预取值时,哪些数字意味着什么和什么发生的好例子可以找到here,所以你的案例中你需要的值是任意的,但显然取决于各种因素,如:发布频率,大小消息,消费者数量等

    在屏幕截图中,您的消费者预取似乎比通道预取更大 . 现在我不知道web管理ui报告的是什么,也不知道rabbitmq或c#库如何处理这个问题,但我会说根据文档中的内容,消费者预取计数只能小于或等于通道预取count(我的意思是当然它实际上在运行时使用,而不是在声明时) .

相关问题