为什么我的任务匹配头交换中的每个RabbitMQ队列?
我正在尝试使用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值也匹配)。为什
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-
开头;命名标头重试计数确实有效