【问题标题】:RabbitMQ basic.returnRabbitMQ basic.return
【发布时间】:2016-03-16 21:09:25
【问题描述】:

如果我使用确认(model.ConfirmSelect)AKA basic.ack 和强制标志发布。如果消息未送达,我是否总是在 basic.ack 事件之前获得 basic.return 事件?

我想将所有 basic.return 消息添加到 ConcurrentDictionary 并在发布后检查消息是否在字典中我将抛出异常,即不存在队列/路由,并在错误或成功时将其删除.

【问题讨论】:

    标签: c# rabbitmq rabbitmq-exchange easynetq


    【解决方案1】:

    是的,您将始终按该顺序接收事件。

    来自documentation

    什么时候确认消息?

    对于不可路由的消息,一旦交换验证消息不会路由到任何队列(返回一个空的队列列表),代理将发出确认。 如果消息也是强制发布的,basic.return 会在 basic.ack 之前发送给客户端。否定确认 (basic.nack) 也是如此。

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 2011-01-12
      • 1970-01-01
      • 2018-11-17
      • 2011-11-27
      • 1970-01-01
      • 2016-09-16
      • 1970-01-01
      • 1970-01-01
      相关资源
      最近更新 更多