【发布时间】:2015-05-03 13:54:14
【问题描述】:
我在试图理解 headers 类型的交换如何工作时遇到了一些问题。
只有一个交易所,myExchange
三个队列:
- 我的队列1
- 我的队列2
- 我的队列3
绑定:
- myExchange => myQueue1 (x-match: any, myHeader: [test1])
- myExchange => myQueue2 (x-match: any, myHeader: [test2])
- myExchange => myQueue3 (x-match: any, myHeader: [test1, test2, test3])
我希望消息的标题有多个值; test1、test2、test3 的任意组合(例如:单独的 test1、test1和test2、test3和test2等...)
myQueue3 仅接收具有 myHeaders:[test1, test2, test3] 的消息。我希望 myQueue3 能够获取消息,例如test1 和 test2 也是如此。
myQueue1 仅接收具有 myHeaders:[test1] 的消息。我希望 myQueue1 能够获取消息,例如test1 和 [test1, test2] 也是如此。
有没有办法实现这种行为?谢谢
【问题讨论】:
-
看起来标头交换绑定不能以这种方式工作。 AFAIR,他们使用严格匹配,所以如果你有一些标题的数组值,那么该数组中的项目位置很重要。也许使用带有(多个)通配符路由键绑定的常规主题交换会更好地为您服务?
-
使用路由密钥对您的情况有所帮助。
标签: rabbitmq message-queue rabbitmq-exchange