消息發送確認
1 ConfirmCallback方法
ConfirmCallback 是一個回調接口,消息發送到 Broker 后觸發回調,確認消息是否到達 Broker 服務器,也就是只
確認是否正確到達 Exchange 中。
2 ReturnCallback方法
通過實現 ReturnCallback 接口,啟動消息失敗返回,此接口是在交換器路由不到隊列時觸發回調,該方法可以不
使用,因為交換器和隊列是在代碼里綁定的,如果消息成功投遞到 Broker 后幾乎不存在綁定隊列失敗,除非你代
碼寫錯了。
消息接收確認
RabbitMQ 消息確認機制(ACK)默認是自動確認的,自動確認會在消息發送給消費者后立即確認,但存在丟失消
息的可能,如果消費端消費邏輯拋出異常,假如你用回滾了也只是保證了數據的一致性,但是消息還是丟了,也就
是消費端沒有處理成功這條消息,那么就相當于丟失了消息。
消息確認模式有:
AcknowledgeMode.NONE:自動確認。 AcknowledgeMode.AUTO:根據情況確認。
AcknowledgeMode.MANUAL:手動確認。 消費者收到消息后,手動調用 Basic.Ack 或 Basic.Nack 或
Basic.Reject 后,RabbitMQ 收到這些消息后,才認為本次投遞完成。
Basic.Ack 命令:用于確認當前消息。 Basic.Nack 命令:用于否定當前消息(注意:這是AMQP 0-9-1的
RabbitMQ擴展) 。 Basic.Reject 命令:用于拒絕當前消息。 Nack,Reject后都有能力要求是否requeue消息或者
進入死信隊列