我如何向 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.C1C.C2

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

看来我需要的是 fanout 与命名队列而不是 exclusive 的交换。

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

如果两个服务声明同一个队列,并将消费者绑定到它,它们最终会被轮询。