RabbitMq主题交换

时间:2015-08-24 15:16:20

标签: c# rabbitmq message-queue rabbitmq-exchange

是否可以使用RabbitMQ主题交换来实现以下场景。

假设我有两个队列:

Queue1:路由密钥MainRoute.Route1

队列2:路由密钥MainRoute.Route2

当我使用路由键发布消息时:

MainRoute.Route1 - >队列1

MainRoute.Route2 - >队列2

MainRoute - > Queue1和Queue2

是否有可能在不实施某些特殊过滤,路由过程的情况下实现这一目标?

如果没有,请告知可能的问题解决方案。

谢谢。

1 个答案:

答案 0 :(得分:0)

这可以通过直接或主题交换来完成,并且在您的交换中需要4个绑定。

假设以名为“MainEx”的交易所为例,路由密钥将设置如下:

| exchange | binding          | queue  |
| -------- | ---------------- | ------ |
| MainEx   | MainRoute.Route1 | Queue1 |
| MainEx   | MainRoute.Route2 | Queue2 |
| MainEx   | MainRoute        | Queue1 |
| MainEx   | MainRoute        | Queue2 |

通过主题交换,您可以使用标志将多条消息发送到单个队列。例如,将“MainRoute。#”绑定到“Queue3”会将所有 MainRoute消息发送到Queue3。

但是,单一绑定无法做到相反的事情。您需要创建多个绑定来执行您想要的操作。