2016-07-14 55 views
0

有关数据的架构的一个问题在RabbitMQ的RabbitMQ的兑换点订购

流动

是否有可能从不同的队列,一个兑换点收集消息? 后来消费者订阅这一点?

我为服务发送消息,我希望能够为每个交付过程创建一个队列。并管理这个Q.但消费者需要订阅所有这些Q

想法收集所有队列在一个点,并从这一点拿起消息 但如何实现它?

回答

0

在RabbitMQ中,通常应该将消息发布到“交换”并从“队列”消耗。交换和队列之间有绑定。就您而言,自然而然,您可以为每个发件人创建交换,并将这些交换全部绑定到一个队列中进行消费。

+0

在你的变体中不可能询问系统有关处理消息的数量。 但我作出跟随解决方案: 一个主要队列 –

+0

在你的变种是不可能问系统有关处理消息的数量。 但我做了以下解决方案: 一个主队列和每个交付/发送者的很多队列(附加Q)。工作人员仅在主Q上订阅,但主Q中的消息包含名称为附加Q的字段。 因此,工作人员从主要和附加Q获取消息。随时可以询问rabbitMQ有关addQ中消息数量的信息。或者我可以删除此Q并停止交付过程。 也许这是奇怪的建筑,但它满足我的需求 –

+0

好吧,我几乎明白你的观点。所以你说你想要,例如,有3个发件人和3个发件人队列(每个发件人一个);您希望将发件人队列中的邮件收集到收集队列中;您的订阅者只订阅收集队列,对吧?有一个问题,你想收集过程是自动的吗?如果它是自动的,只要任何消息发送到发件人队列,它就会从发件人队列中移除并收集到收集队列,然后如果尝试获取发件人队列中的消息数量,它将始终为0 –