RabbitMQ:如何在Header Exchange中使用复杂表达式?

时间:2016-11-11 13:47:55

标签: header rabbitmq

Bellow是死信队列中邮件的标题。我使用的是RabbitMQ。

__TypeId__: com.example.queue.TesteDTO
correlationId:  dfbc9457-8de6-9b77-b7ad-b259d1e2ede4
sequenceNumber: 1
sequenceSize:   2
x-death:    
  count:    1
    reason: rejected
    queue:  queue.raffael.teste
    time:   1478870283
    exchange:   
    routing-keys:   queue.raffael.teste

我想使用复杂表达式声明和绑定标头交换,例如:

x-match = any
x-death[0].count = 1
x-death[0].count = 2
x-death[0].count = 3

但它不起作用。它似乎只适用于简单的表达式:

x-match = any
simpleExpression = 1
simpleExpression = 2
simpleExpression = 3

那么,请问,如何引用数组索引和组件而不仅仅是Header Exchanges中的简单表达式(RabbitMQ)?

1 个答案:

答案 0 :(得分:1)

“dot”一词仅出现在AMQP规范中,与路由密钥有关。 Headers Exchange不应该解析参数键。如果有一个带有字符串键“x-death [0] .count”的标题和一个数字值1,它将匹配,但是只有一个带有字符串键“x-death”的标题和一个类型为的值:表格数组。