RocketMQ 訊息消費流程

2021-10-23 17:24:14 字數 557 閱讀 8606

同乙個消費組內的消費者共同承擔其訂閱主題下訊息佇列的消費。

分配演算法:盡量使用:平均分配,平均輪詢分配。

分配原則:同乙個訊息消費佇列同一時間只會分配給同乙個消費者,乙個消費者可以分配多個訊息消費佇列。

順序訊息的消費存在訊息佇列鎖:

1.向broker傳送鎖定該訊息佇列的請求;

2.鎖定成功建立該訊息佇列的拉去任務;

3.鎖定失敗則等待其它消費者釋放該訊息佇列的鎖。

一般需做冪等處理。

消費模式:

1.集群模式:輪詢或者根據演算法分配,訊息只會被某乙個消費者消費到,可重試。

2.廣播模式:每條訊息會被訂閱了該訊息主題的所有消費者消費,不存在重試。

基於ack確認機制。

記錄訊息的消費進度。

廣播模式:儲存在消費者本地。

集群模式:存放在服務端broker。

問題:當消費者群組有新的消費者加入或者有消費者宕機,如何處理?

答:rebalanceservice執行緒預設每20秒進行一次訊息佇列負載,根據當前消費組內消費者個數與主題佇列數量按照某一種負載演算法進行佇列分配。

RocketMQ 訊息消費

訊息消費 難點 如何保證訊息只消費一次?順序消費?消費模式 1 單一消費模式 一條訊息,僅被乙個消費者進行消費。如何進行負載?負載演算法有 a 平均分配。b 平均輪詢分配。c 一致性hash 不推薦 d 根據配置,為消費者指定訊息佇列。e 根據broker進行分配,消費者固定消費指定的broker。...

利用Python消費RocketMQ訊息佇列資料

1 安裝 rocketmq python位址見 pip install rocketmq2安裝rocketmq client cpp 環境 並不能直接使用rocketmq python,需要先安裝 rocketmq client cpp 環境。教程見 sudo rpm ivh rocketmq cl...

Rocketmq訊息佇列廣播消費測試

一 機器部署 1 機器組成 7臺機器,均為16g記憶體 每台伺服器均有4個cpu,2核 2 執行環境配置 3 刷盤方式 每台機器master機器均採用非同步刷盤方式 二 效能評測 1 評測目的 測試consumer端的廣播模式消費。2 評測指標 所屬不同consumergroup組的consumer...