【发布时间】:2014-04-28 14:32:46
【问题描述】:
在设计 rabbit-mq 消费者分布时需要帮助。
例如, 有 100 个队列和 10 个线程来使用这 100 个队列中的消息。 每个线程将使用来自 10 个队列的消息。 问题1:如何动态地将线程分配给队列?如果线程在不同的机器上运行?
从一个队列中消费的线程不能超过一个(以保持在相应队列中处理消息的顺序) 问题2:当系统运行时需要增加消费者线程时,怎么做?
【问题讨论】:
-
您可以使用 ExecutorService (rabbitmq.com/api-guide.html) 将线程分配给消费者。它是什么意思“如果线程在不同的机器上运行?”我认为你可以解决只使用从所有消费者共享的 ThreadPoolExecutor 并动态调整它的大小。这个问题是通用的,有很多方法可以实现你想要的。只是一个 OT,我已经回答了你的一个问题 (*.com/questions/23333863/…),非常感谢您的反馈。
-
你能分享一个例子吗?如果我们委托给 ExecutorService ,我们如何确保处理消息的顺序? “如果线程在不同的机器上运行” - 例如。在这 10 个线程中,5 个来自 NodeA,5 个来自 NodeB
标签: rabbitmq distribution consumer