2

我们一直在试验 RabbitMQ。在这些实验中,我们看到了一些关于工作队列的奇怪行为。

观察结果之一是,当我们添加或删除从该队列读取的进程时,队列的读取性能不会改变。例如:当单个进程以 800 msg/sec 的速率处理消息时。添加第二个(类似的)进程会导致两个进程以 400 msg/sec 的速率处理消息,总计 800 msg/sec。当我们关闭其中一个进程时,另一个进程的 msg 速率会增加到(您猜到的)800 msg/sec。

这不是我们所期望的。当我们向队列中添加第二个读取器时,为什么吞吐量没有翻倍?

我们正在使用 RabbitMQ .NET 客户端(结合 EasyNetQ 高级 API)。我们打开了发布者确认,使用 50 的 prefetch_count (Qos),在消息被处理后确认消息,并使用持久交换、队列和消息。

我们一定做错了什么,非常欢迎任何指向正确方向的指针......

4

0 回答 0