RabbitMq 话题交流
RabbitMq topic exchange
是否可以使用RabbitMQ topic exchange实现如下场景
假设我有两个队列:
Queue1:路由键 MainRoute.Route1
Queue2:路由键 MainRoute.Route2
当我使用路由密钥发布消息时:
MainRoute.Route1 -> Queue1
MainRoute.Route2 -> Queue2
MainRoute -> Queue1 和 Queue2
是否可以在不实施一些特殊的过滤、路由过程的情况下实现这一目标?
如果不能,请提供解决问题的可能方案。
谢谢。
这可以通过直接或主题交换来完成,并且需要在您的交换中进行 4 次绑定。
假设一个名为 "MainEx" 的交易所为例,路由键将设置如下:
| exchange | binding | queue |
| -------- | ---------------- | ------ |
| MainEx | MainRoute.Route1 | Queue1 |
| MainEx | MainRoute.Route2 | Queue2 |
| MainEx | MainRoute | Queue1 |
| MainEx | MainRoute | Queue2 |
通过主题交换,您可以使用标志将多条消息发送到单个队列。例如,将 "MainRoute.#" 绑定到 "Queue3" 会将 all MainRoute 消息发送到 Queue3。
但是,没有办法用单一绑定做相反的事情。您需要创建多个绑定来执行您想要的操作。
是否可以使用RabbitMQ topic exchange实现如下场景
假设我有两个队列:
Queue1:路由键 MainRoute.Route1
Queue2:路由键 MainRoute.Route2
当我使用路由密钥发布消息时:
MainRoute.Route1 -> Queue1
MainRoute.Route2 -> Queue2
MainRoute -> Queue1 和 Queue2
是否可以在不实施一些特殊的过滤、路由过程的情况下实现这一目标?
如果不能,请提供解决问题的可能方案。
谢谢。
这可以通过直接或主题交换来完成,并且需要在您的交换中进行 4 次绑定。
假设一个名为 "MainEx" 的交易所为例,路由键将设置如下:
| exchange | binding | queue | | -------- | ---------------- | ------ | | MainEx | MainRoute.Route1 | Queue1 | | MainEx | MainRoute.Route2 | Queue2 | | MainEx | MainRoute | Queue1 | | MainEx | MainRoute | Queue2 |
通过主题交换,您可以使用标志将多条消息发送到单个队列。例如,将 "MainRoute.#" 绑定到 "Queue3" 会将 all MainRoute 消息发送到 Queue3。
但是,没有办法用单一绑定做相反的事情。您需要创建多个绑定来执行您想要的操作。