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

为什么我的任务匹配头交换中的每个RabbitMQ队列?,rabbitmq,amqp,Rabbitmq,Amqp,我正在尝试使用RabbitMQ头交换实现指数退避,我让每个队列都绑定x-match:“all”和x-retry-count:[此级别的重试计数]。然而,我发现,如果我尝试重试一个任务,并且我有100、200、400和800毫秒等待时间的退避队列,那么我发送给重试交换的每个任务都会以某种方式匹配每个队列 如下图所示,对于200ms退避队列,我绑定了头x-retry-count:2,但是头x-retry-count:1的任务与之匹配(退避交换中所有其他队列的x-retry-count值也匹配)。为什

我正在尝试使用RabbitMQ头交换实现指数退避,我让每个队列都绑定
x-match:“all”
x-retry-count:[此级别的重试计数]
。然而,我发现,如果我尝试重试一个任务,并且我有100、200、400和800毫秒等待时间的退避队列,那么我发送给重试交换的每个任务都会以某种方式匹配每个队列

如下图所示,对于200ms退避队列,我绑定了头
x-retry-count:2
,但是头
x-retry-count:1
的任务与之匹配(退避交换中所有其他队列的x-retry-count值也匹配)。为什么会这样


找到了发生的事情
x-retry-count
不算作可以匹配的头,因为它以
x-
开头;命名标头重试计数确实有效