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的消費者是如何獲取訊息的,通過學習知識來找回狀態吧。廢話不多說,我們開始吧。首先我們了解乙個概念,什麼是消費者組。消費者組你就可以把它理解為,給一組消費者起乙個...