【问题标题】:RabbitMQ: d.Ack() close channelRabbitMQ:d.Ack() 关闭通道
【发布时间】:2018-05-09 04:30:59
【问题描述】:

我正在阅读这篇tutorial 关于使用 RabbitMQ 进行 RPC 的文章

似乎以下行关闭了队列通道:

d.Ack()

谁能解释d.Ack() 的实际用途?以及为什么会发生关闭队列通道?

【问题讨论】:

    标签: go rabbitmq message-queue rpc channel


    【解决方案1】:

    Ack() 确认交货,当确认模式为手动时应使用。另请参阅 Nack 和 Reject。

    来自Consumer Acknowledgements and Publisher Confirms

    根据使用的确认模式,RabbitMQ 可以考虑一个 消息在发送后立即成功传递 发送(写入 TCP 套接字)或显式(“手动”) 收到客户确认。

    Ack() 可能最终会关闭通道,因为每条消息应被确认不超过一次,否则通道会因异常而关闭:

    AMQP basic acknowledgement:

    一条消息不得多次确认。接收对等体 必须验证非零交付标签是指交付的 消息,如果不是这种情况,则引发通道异常。

    【讨论】:

      猜你喜欢
      • 2015-02-19
      • 2014-07-14
      • 2021-05-17
      • 2014-01-07
      • 2016-08-09
      • 1970-01-01
      • 1970-01-01
      • 2022-11-17
      • 2019-03-15
      相关资源
      最近更新 更多