【问题标题】:Why do my tasks match every RabbitMQ queue in a headers exchange?为什么我的任务匹配标头交换中的每个 RabbitMQ 队列?
【发布时间】:2018-03-16 15:38:48
【问题描述】:

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

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

【问题讨论】:

    标签: rabbitmq amqp


    【解决方案1】:

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

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2017-10-08
      • 2015-05-03
      • 2020-12-12
      • 1970-01-01
      • 2012-09-17
      • 1970-01-01
      相关资源
      最近更新 更多