我已经从RabbitMQ网站实现了这个例子: RabbitMQ Example
我已将其扩展为具有带按钮的应用程序以发送消息。 现在我在两台不同的计算机上启动了两个用户 当我发送消息时,第一条消息被发送到computer1,然后第二条消息被发送到computer2,thrid发送到computer1,依此类推。
为什么会这样,以及如何更改将每条消息发送给每个消费者的行为?
答案 0 :(得分:12)
为什么会这样
如Yazan所述,消息是以循环方式从单个队列中消耗的。您所看到的行为是设计使用,可以轻松扩展给定队列的使用者数量。
如何更改将每条消息发送给每个消费者的行为?
要让每个使用者收到相同的消息,您需要为每个使用者创建一个队列,并将相同的消息传递给每个队列。
最简单的方法是使用fanout
交换。这会将每条消息发送到绑定到交换机的每个队列,完全忽略路由密钥。
如果您需要更多控制路由,可以使用topic
或direct
交换并管理路由密钥。
无论您选择何种类型的交换,您都需要为每个消费者设置一个队列,并将每条消息路由到每个队列。
答案 1 :(得分:2)