當前位置:
首頁 > 知識 > MQ消息中間件技術精講11高級篇四 confirm 確認消息

MQ消息中間件技術精講11高級篇四 confirm 確認消息

RabbitMQ消息中間件技術精講11 高級篇四 confirm 確認消息

理解Confirm消息確認機制:

消息的確認,是指生產者投遞消息後,如果broker收到消息,則會給生產者一個應答;

生產者經行接收應答,用來確定這條消息是否正常的發送到broker,這中方式也是消息的可靠性投遞的核心保障!

確認機制流程圖:

如何實現Confirm確認消息?

第一步:在channel上進行開啟確認模式:channel.confirmSelect();

第二步:在channel上添加監聽:addConfirmListener,監聽成功和失敗的返回結果,根據具體的結果對消息進行重新發送,或記錄日誌等後續操作。

代碼實現:

添加確認消息監聽是在生產端處理的,所以生產端代碼如下:

在channel上添加確認模式:

添加監聽的,我們可以看到還有返回監聽,關閉shutdown的監聽。這裡我們選擇確認監聽:

說明:

在添加確認監聽時候,需要一個ConfirmListener listener的參數。這裡我們就使用了內部類。其中要實現兩個方法:handleAck和handleNack.

handleAck:成功監聽,handleNack失敗監聽。

其中兩個產生:long 類型的消息唯一標籤,boolean類型的是否批量。

我們在來看看消費者端:

啟動服務:

啟動消費者,我們在管控台查看:

路由exchanges列表:

隊列和路由都已經創建了。接下來,我們啟動生產者,觀察控制是否接收到應答:

我們可以看到,生產者已經列印出投遞成功的確認消息。

本節總結:

相關代碼已發布在git上,歡迎大家下載查看

系列教程持續更新中~~。歡迎大家一起學習

下節預告:

在下節中,我們將講解return消息機制

喜歡這篇文章嗎?立刻分享出去讓更多人知道吧!

本站內容充實豐富,博大精深,小編精選每日熱門資訊,隨時更新,點擊「搶先收到最新資訊」瀏覽吧!


請您繼續閱讀更多來自 凱哥java 的精彩文章:

JVM學習系列學習四
RabbitMQ學習系列教程六:Fanout交換機的使用

TAG:凱哥java |