我如何向 RabbitMQ 中每个组的一个订阅者发送消息?
How do I deliver a message to a one subscriber of each group in RabbitMQ?
假设我实施了 this pub/sub 模式:
所以基本上我向订阅交换 X
的每个 C
发送消息。
我有 P
的实例,还有很多像 C 这样的订阅者。让我们将 C10、C11、C12、C13 定义为一个组 C1
,将 C20、C21、C22、C23 定义为一个组C2
.
我如何发送一条消息,以便只有一个 C
会收到来自每个组的消息? (我对循环法完全没问题)
直接去topics tutorial.
路由键应类似于 C.C1
或 C.C2
。
基本上,使用路由键 C.*
发送消息(因此它们将转到 C.C1
xor C.C2
),并为每个消费者订阅 C.C1
xor C.C2
。 RMQ 将以循环方式向订阅 C.CN
路由密钥的所有消费者分发消息。
看来我需要的是 fanout
与命名队列而不是 exclusive
的交换。
每个 C
服务声明一个非独占的命名队列并将其绑定到交换器。并将消费者绑定到该队列。
如果两个服务声明同一个队列,并将消费者绑定到它,它们最终会被轮询。
假设我实施了 this pub/sub 模式:
所以基本上我向订阅交换 X
的每个 C
发送消息。
我有 P
的实例,还有很多像 C 这样的订阅者。让我们将 C10、C11、C12、C13 定义为一个组 C1
,将 C20、C21、C22、C23 定义为一个组C2
.
我如何发送一条消息,以便只有一个 C
会收到来自每个组的消息? (我对循环法完全没问题)
直接去topics tutorial.
路由键应类似于 C.C1
或 C.C2
。
基本上,使用路由键 C.*
发送消息(因此它们将转到 C.C1
xor C.C2
),并为每个消费者订阅 C.C1
xor C.C2
。 RMQ 将以循环方式向订阅 C.CN
路由密钥的所有消费者分发消息。
看来我需要的是 fanout
与命名队列而不是 exclusive
的交换。
每个 C
服务声明一个非独占的命名队列并将其绑定到交换器。并将消费者绑定到该队列。
如果两个服务声明同一个队列,并将消费者绑定到它,它们最终会被轮询。