我成功设置了主题交换,我可以同时向多个消费者发送消息。
我还想向竞争消费者传递信息并继续使用主题交换。我读到使用相同的队列名称使消费者能够竞争消息。但是,我可能会弄错,因为我无法使其发挥作用。
为同一主题设置多个听众:
如何将竞争消费者设置为同一主题?
甚至可以使用主题交换吗?
感谢。
答案 0 :(得分:3)
让我们首先回顾几点。
首先,请记住,在RabbitMQ中,您总是从队列中消耗。交换只是你的门户,你不能直接从它们消费。
其次,Google Sheets API允许使用路由密钥"模式"来绑定队列。因此,术语主题在"主题交换"的上下文中有效。
现在这是我从你的问题中理解的:
多个消费者/相同的路由键: 这是您希望多个消费者使用相同路由密钥(或主题交换中的相同路由密钥模式)消费消息的地方。这实际上是可行的。就这样做:
将会发生的事情是,RabbitMQ将在循环问题中为您的消费者带来负载平衡。这意味着所有消费者将使用相同的队列。但请记住,在这种情况下,理论上可能会多次传递单个消息。
您正在做的是创建多个队列并且每个队列有一个消费者。这意味着进入交换的每条消息都将在所有队列中重复。最终结果是消息被多次处理。
答案 1 :(得分:0)
我通过使用交换到交换绑定解决了这个问题。