RocketMQ中關於消費者Rebalance過程?

時間 2021-05-29 23:55:48

1樓:Jaskey Lam

提主的 1. 對於多Broker情況下,單個topic只能分布在乙個Broker上就是錯誤的,相反,單個topic應該分布在多組broker上,才能保證寫訊息的高可用。否則一組broker的master掛了之後,該topic沒有其他broker提供寫訊息服務的話,這個topic的寫入就不可用了。

負載均衡策略

至於rebalance,rocketmq採用的是客戶端決定的策略。

首先,某個topic下面有若干的Q,通過name server的聚集,name server會知道所有的broker中有這個topic的queue的乙個全集。然後consumer會通過name server獲得這個全集。

到這裡,所有的consumer都知道了能夠消費的queue 列表。

到了需要負載均衡的時候,consumer 會向broker詢問乙個當前consume group的所有消費者列表(知道當前這個組總共有幾個消費者例項)。

通過乙個queue的全集,乙個消費者例項的全集,通過乙個簡單的平均分配演算法(求餘)。可以保證每個消費者都能拿到相同數量QueueNum/ClientNum的queue(如果可以整除的話)。

何時觸發負載均衡

1. 客戶端啟動(以及定期)的時候會傳送心跳到broker,當broker通過心跳,或者鏈結斷開,或者取消監聽等事件檢測到消費者例項數量發生改變,都會主動通知所有的consumer 做一次負載均衡的工作——計算分配到的queue列表

2. 除了接受broker事件之外,每10秒,客戶端都會嘗試計算一遍負載均衡的queue列表是否變化。

一旦發現queue列表發生了變化,則重新的負載均衡——新增的queue加入pull request,丟棄的queue裡面的訊息停止處理。

更多詳情請參看我的部落格:RocketMQ--水平擴充套件及負載均衡詳解 - 薛丁格的風口豬

配眼鏡時不會直接給消費者鏡片,消費者怎麼知道最後配好的眼鏡上的鏡片是購買的高檔鏡片鏡片?

千尋585 有點可以留防偽標誌,不過加工後不一定能留住。為什麼鏡片防偽標誌加工後不一定能留住 這是凱公尺U6磨1.6和1.67折射率的鏡片防偽。不過有點鏡片就是能留下防偽,但防偽標誌卻很難看見的 有點坑 像精工,尼康。廣告 精工愛普視鏡片庫存處理 一,付款前提前要求店家留下鏡片包裝。這時老鼠屎心裡就...

為什麼營銷一定要以消費者為中心,以消費者客觀存在的需求為導向

金Lison 首先,這句話是乙個定義。然後請看現實 甲方營銷者在做的事 產品 售賣 消費者乙方營銷公司 產品 售賣 消費者 非剛需 消費者 產品的廣告 支付渠道 使用體驗 剛需 消費者 需求 產品對比 產生產品口碑看你站在以上哪個位置,營銷要綜合考慮。為中心,為導向 這個結論有點形而上,但基本是上述...

為什麼平均消費水平較高的環境中消費者的平均顏值較高?

這個問題太有意思了噢 就從我的生活範圍來看身邊富二代很多超越中產階級這種怎麼講呢我從來沒見過他們穿過低於2000的衣服然後護膚品化妝品都是貴婦級別那種很少會有200,300的我檸檬了人靠衣裝馬靠鞍我靠一身 包括化妝品配飾鞋子包包 加起來,差不多至少5,6萬8 我身邊的渣男朋友其實很多長得真的比較一般...