RabbitMQ:d.Ack()关闭频道

时间:2017-11-25 11:29:24

标签: go rabbitmq message-queue rpc channel

我正在阅读有关使用RabbitMQ的RPC的tutorial

似乎跟随行关闭队列通道:

d.Ack()

有人可以解释d.Ack()实际上是什么吗?为什么它恰好关闭队列通道?

1 个答案:

答案 0 :(得分:1)

Ack()确认传递,应在确认模式为手动时使用。另见Nack和Reject。

来自Consumer Acknowledgements and Publisher Confirms

  

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

Ack()可能最终关闭频道,因为每条消息都应该被识别不超过一次,否则频道会因异常而关闭:

AMQP basic acknowledgement:

  

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