【发布时间】:2014-03-05 10:36:00
【问题描述】:
我有一个情况,我有一个 RabbitMQ 集群。我有多个生产者,它们产生不同的数据。我希望每个生产者根据参数设置一个临时队列,如果队列为空,则删除该队列。
例如生产者 A 和 B:
A ----- tmp_a_queue
B ----- tnp_b_queue
我想这样做以扩展系统的吞吐量。接下来,我希望我的消费者在能够消费时创建一个队列,并从两个队列中获取消息。
例如将消费者C添加到上面的模板中:
_______________________
A ----- tmp_a_queue\ | |
====| SOME MAGIC GOES HERE |-----tmp_c_queue C
B ----- tnp_b_queue/ |_______________________|
我知道如何创建A、B 和C。
问题:
是否可以设置某种internal-exchange,使其能够从左侧的所有tmp_queues 中获取消息(注意它们是动态来去的)并将它们发送到消费者队列(右侧),仅当消费者可用时?
【问题讨论】:
-
我认为每个动态创建的队列都需要一个动态实例化的转发器进程来负责转发它的消息。我想您可以添加一个“签入”队列,每个动态队列都会发布到该队列,这样您的“MAGIC”进程就知道在出现新队列时该去哪里
-
是的,我也在考虑这个问题。你知道内部交流是否能以某种方式帮助我吗?
-
这不是我理解交换工作的方式(尽管我故意避免发布任何这些作为答案,因为我对消息队列不太了解(只是进入它们)以免劝阻更多知识渊博的人查看这个问题。Exchanges seem to work 关于您可以获取一条消息并将其分发到多个队列(基于绑定或主题)的想法,在这里您正在尝试相反,这听起来只是另一个队列。
标签: java python queue rabbitmq message-queue