为什么我的任务与头交换中的每个RabbitMQ队列匹配?

时间:2018-03-16 15:38:48

标签: rabbitmq amqp

我尝试使用RabbitMQ标头交换实现指数退避,并且每个队列都绑定了x-match: "all"x-retry-count: [RETRY COUNT FOR THIS LEVEL]。但是,我发现如果我尝试重试任务并且我有100,200,400和800毫秒等待时间的退避队列,我发送到重试交换的每个任务都会以某种方式匹配每个队列。

正如您在下图中所看到的,对于200ms退避队列,我绑定了标头x-retry-count: 2,但是标题为x-retry-count: 1的任务正在匹配它(和x - 退避交换中所有其他队列的-retry-count值也是如此)。为什么会这样?

enter image description here

1 个答案:

答案 0 :(得分:0)

发现了什么。 x-retry-count并不算作可以匹配的标头,因为它以x-开头;命名头重试计数确实有效