我已经实现了 RabbitMQ 网站上的示例:RabbitMQ 示例
我已将其扩展为带有一个用于发送消息的按钮的应用程序。
现在我在两台不同的计算机上启动了两个消费者。
当我发送消息时,第一条消息发送到computer1,然后第二条消息发送到computer2,第三条消息发送到computer1,依此类推。
这是为什么?如何更改将每条消息发送给每个消费者的行为?
为什么是这样
正如 Yazan 所指出的,消息以循环方式从单个队列中消耗。您所看到的行为是设计使然,可以轻松扩大给定队列的消费者数量。
如何更改将每条消息发送给每个消费者的行为?
为了让每个消费者都收到相同的消息,需要为每个消费者创建一个队列,并向每个队列传递相同的消息。
最简单的方法是使用fanout
交换。这会将每条消息发送到绑定到交换器的每个队列,完全忽略路由键。
如果您需要对路由进行更多控制,可以使用topic
or direct
交换和管理路由密钥。
但是,无论您选择哪种类型的交换,您都需要为每个消费者提供一个队列,并将每条消息路由到每个队列。
本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)