生產者Confirm訊息與Return訊息機制

2021-09-13 17:17:47 字數 1208 閱讀 3041

訊息的確認,是指生產者投遞訊息後,如果broker收到訊息,則會給我們生產者乙個應答

生產者接收應答,用來確定這條訊息是否正常傳送到broker,這種方式也是訊息的可靠性傳遞的核心保障

channel開啟確認模式 channel.confirmselect()

在channel上加監聽:addconfirmlisterer,監聽成功和失敗的返回結果,根據具體結果對訊息進行重新傳送、或記錄日誌等後續處理

public class producer 

//handlenack 失敗時的處理

//磁碟寫滿 、mq出現異常、queue容量達到上限

@override

public void handleack(long deliverytag, boolean multiple) throws ioexception

//handleack 成功時的處理

//deliverytag訊息的唯一標籤

//multiple 是否批量

});}}

return listener用於處理一些不可路由的訊息

我們的訊息生產者,通過制定乙個exchange和routingkey,把訊息送達到某乙個佇列中去,然後我們消費者監聽佇列,進行消費處理。但是在某些情況下,如果我們在傳送訊息的時候,當前的exchange不存在或指定的路由key路由不到,這個時候我們需要監聽這種不可達的訊息,return listener

mandatory:如果true,則***會接收到路由不可達的訊息,然後後續處理,如果為false,那麼broker自動刪除該訊息

//第三個引數是mandatory,mandatory為true,才能使用return機制

routingkeyerror, true, null, msg.getbytes());

}}

訊息佇列與生產者消費者模型

目錄生產者消費者模型 我們知道程序之間資料是相互隔離的,要想實現程序間的通訊 ipc機制 就必須借助於一些技術才可以,比如multiprocessing模組中的 佇列和管道,這兩種方式都是可以實現程序間資料傳輸的,由於佇列是管道 鎖的方式實現,所以我們著重研究佇列即可 佇列支援多個人從佇列的一端放入...

kafka 生產者訊息分發策略

訊息是kafka中最基本的額資料單元,在kafka中,一條訊息由key value兩部分構成,在傳送一條訊息時,我們可以指定這個key,producer會根據key來判斷當前這條訊息應該 路由儲存到哪個partition。預設情況下,kafka採用的是對key進行hash取模計算出分割槽。如果key...

生產者消費者 生產者與消費者模式

一 什麼是生產者與消費者模式 其實生產者與消費者模式就是乙個多執行緒併發協作的模式,在這個模式中呢,一部分執行緒被用於去生產資料,另一部分執行緒去處理資料,於是便有了形象的生產者與消費者了。而為了更好的優化生產者與消費者的關係,便設立乙個緩衝區,也就相當於乙個資料倉儲,當生產者生產資料時鎖住倉庫,不...