我尝试使用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值也是如此)。为什么会这样?
答案 0 :(得分:0)
发现了什么。 x-retry-count
并不算作可以匹配的标头,因为它以x-
开头;命名头重试计数确实有效