RabbitMQ向每个消费者发送相同的消息

Gre*_*ndy 6 rabbitmq

我已经从RabbitMQ网站实现了这个例子: RabbitMQ示例

我已将其扩展为具有带按钮的应用程序以发送消息.现在我在两台不同的计算机上启动了两个用户 当我发送消息时,第一条消息被发送到computer1,然后第二条消息被发送到computer2,thrid发送到computer1,依此类推.

为什么会这样,以及如何更改将每条消息发送给每个消费者的行为?

Der*_*ley 13

为什么是这样

如Yazan所述,消息以循环方式从单个队列中消耗.您所看到的行为是设计使用,可以轻松扩展给定队列的使用者数量.

如何更改将每条消息发送给每个消费者的行为?

要让每个使用者收到相同的消息,您需要为每个使用者创建一个队列,并将相同的消息传递给每个队列.

最简单的方法是使用fanout交换.这会将每条消息发送到绑定到交换机的每个队列,完全忽略路由密钥.

如果需要更多控制路由,可以使用topicdirect交换和管理路由密钥.

但是,无论您选择何种类型的交换,您都需要为每个使用者设置一个队列,并将每条消息路由到每个队列.