我在试图理解类型 * 头 * 的交换如何工作时遇到了一些问题。
只有一个交易所,myExchange
三个队列:
1.我的队列1
1.我的队列2
1.我的队列3
系结:
- myExchange =〉我的队列1(x匹配:任何,我的信头:[测试1])
- myExchange =〉我的队列2(x匹配:任何,我的信头:[测试2])
- myExchange =〉我的队列3(x匹配:任何,我的信头:[测试1、测试2、测试3])
我希望消息的标头具有多个值;test1、* test 2 、 test 3 * 的任意组合(例如:* 单独测试1 、 测试1 * 和 * 测试2 、 测试3 * 和 * 测试2 * 等)
***myQueue 3***仅接收具有myHeaders的消息:[*test1,test 2,test 3 *]。我希望***myQueue 3***也能获取 test1 和 * test 2 * 等的消息。
***myQueue 1***仅接收具有myHeaders:[test1]的消息。我希望***myQueue 1***也能获得例如 test1 和[test1,* test 2 *]的消息。
有没有什么方法可以实现这样的行为呢?谢谢
3条答案
按热度按时间31moq8wy1#
对于这一点,我有一个诀窍。
系结:
myQueue 1将接收标头包含{test1:false}。
myQueue 2将接收标头包含{test 2:false}。
myQueue 3将接收标头包含此{test1:真},{测试2:true}或{测试3:false}。
我更喜欢这个,因为路由密钥被限制在255字节,但是报头中元素的数量限制非常高。
就性能而言,我不知道什么是最好的。
w8rqjzmb2#
我同意评论,我试图实现的东西,目前是不支持的。我将使用路由密钥。
lndjwyie3#
可以为同一队列声明多个绑定。
在您的示例中,队列3将具有三个不同的绑定。