RocketMQ 消費者核心配置詳解

2021-10-09 03:07:39 字數 759 閱讀 2906

topic 下佇列的奇偶數會影響 customer 個數裡面的消費數量

如果是4個佇列,8個訊息,4個節點則會各消費2條,如果不對等,則負載均衡會分配不均。

如果 consumer 例項的數量比 message queue 的總數量還多的話,多出來的 consumer 例項將無法分到 queue,也就無法消費到訊息,也就無法起到分攤負載的作用,所以需要控制讓 queue 的總數量大於等於 consumer 的數量。

集群模式(預設):

consumer 例項平均分攤消費生產者傳送的訊息

例子:訂單訊息,一般是只被消費一次(被標記為同乙個 consumergroup 組的消費者不會對訊息重複消費)

廣播模式:

廣播模式下消費訊息:投遞到 broker 的訊息會被每個 consumer 進行消費,一條訊息被多個 consumer 消費,廣播消費中 consumergroup 暫時無用。

例子:群公告,每個人都需要消費這個訊息

怎麼切換模式:通過setmessagemodel()

乙個 message 只有乙個 tag,tag 是二級分類。過濾分為 broker 端和 consumer 端過濾。

tag 效能高,邏輯簡單

sql92 效能差點,支援複雜邏輯(只支援 pushconsumer 中使用) messageselector.bysql

語法:> ,<,=,is null,and,or,not 等,sql where 後續的語法即可(大部分)

RocketMQ消費者實踐

最近工作中用到了rocketmq,現記錄下,如何正確實現消費 防止重複消費 如何快速消費 消費失敗如何處理 重複消費會造成資料不一致等問題。所以,消費者要做到消費冪等。1 每次消費,記錄messageid 如果再次消費該message,查詢messageid是否已存在,已存在,就跳過消費 2 使用具...

RocketMQ建立多個消費者問題分析

在乙個程序中同乙個消費組建立多個消費者會出現the consumer group groupname has been created before,specify another name please.defaultmqpushconsumer consumer1 new defaultmqpu...

深入研究RocketMQ消費者是如何獲取訊息的

小夥伴們,國慶都過的開心嗎?國慶後的第乙個工作日是不是很多小夥伴還沉浸在假期的心情中,沒有工作狀態呢?那王子今天和大家聊一聊rocketmq的消費者是如何獲取訊息的,通過學習知識來找回狀態吧。廢話不多說,我們開始吧。首先我們了解乙個概念,什麼是消費者組。消費者組你就可以把它理解為,給一組消費者起乙個...