如何在RabbitMQ中向每个组的一个用户发送消息?

时间:2016-07-22 12:50:25

标签: rabbitmq mq

说我实施了this pub/sub模式:

enter image description here

所以基本上我向订阅了交换C的每个X发送了一条消息。

我有P的实例,以及很多像C这样的订阅者。我们将C10,C11,C12,C13定义为一组C1,将C20,C21,C22,C23定义为小组C2

如何发送消息,以便只有一个C会收到来自每个群组的消息? (我对循环赛来说完全没问题)

2 个答案:

答案 0 :(得分:2)

转到topics tutorial

路由键应该看起来像C.C1C.C2

基本上,使用路由键C.*发送消息(因此它们将转到C.C1 xor C.C2),并将每个消费者订阅到C.C1 xor {{1} }。 RMQ将以循环方式向订阅C.C2路由密钥的所有消费者分发消息。

答案 1 :(得分:0)

所以我需要的是fanout与指定队列而不是exclusive个队列的交换。

enter image description here

每个C服务声明一个非独占的命名队列并将其绑定到交换机。并将消费者绑定到该队列。

如果两个服务声明一个相同的队列,并将一个消费者绑定到它,它们最终会被循环播放。