深入理解Kafka(十二) rebalance原理

下面我們來介紹下Kafka rebalance的原理。kafka的consumer group有多個consumer實例,這些consumer實例是怎么分配topic分區(qū)的呢穗泵,這就需要kafka rebalance來實現(xiàn)這個功能。rebalance是怎么觸發(fā)的泡嘴,有3個條件霎肯,可以觸發(fā)kafka的rebalance流程。
1.組成員發(fā)生變更慢哈。當有新的consumer加入組蔓钟,或者已有consumer崩潰時則觸發(fā)rebalance流程。
2.組訂閱的topic數(shù)發(fā)生變更卵贱。當consumer group訂閱了新的topic時奋刽,也會觸發(fā)rebalance流程瓦侮。
3.組訂閱的topic的分區(qū)數(shù)發(fā)生變更。當consumer group訂閱的topic的分區(qū)數(shù)變更時佣谐,也會觸發(fā)rebalance流程肚吏。
最多的情況就是第一個條件發(fā)生時,比如consumer實例崩潰狭魂,或者設置的consumer參數(shù)request.timeout.ms,max.poll.records和max.poll.interval.ms不合理時罚攀,則會觸發(fā)rebalance流程。
rebalance分區(qū)分配時雌澄,使用的是rebalance協(xié)議斋泄,下面介紹一下這個協(xié)議。kafka提供了5個協(xié)議來處理rebalance操作镐牺。
JoinGroup請求: consumer請求加入組炫掐。
SyncGroup請求: group leader把分配方案同步更新到組內(nèi)所有成員中。
LeaveGroup請求: consumer即將離開組的請求睬涧。
DescribeGroup請求: 查看組的所有成員信息募胃,包括成員信息,協(xié)議信息畦浓,分配方案以及訂閱信息等痹束。
Heartbeat請求: consumer發(fā)送心跳請求。
consumer group在執(zhí)行rebalance之前必須確定coordinator所在的broker讶请,并創(chuàng)建與該broker通信的連接祷嘶。成功連接coordinator之后就可以執(zhí)行rebalance操作。目前rebalance主要分為兩步:加入組和同步更新分配方案夺溢。
加入組:這一步中組內(nèi)所有consumer向coordinator發(fā)送JoinGroup請求论巍。當所有JoinGroup請求都發(fā)送完成后,coordinator會從中選擇一個consumer成為group的leader风响,并把所有成員信息以及它們的訂閱信息發(fā)送給leader环壤。
同步更新分配方案。這一步中l(wèi)eader開始制定分配方案钞诡,即根據(jù)分配策略決定每個consumer都負責哪些topic分區(qū)郑现。一旦分配完成,leader會把這個分配方案放入到SyncGroup請求并發(fā)送給coordinator荧降。而coordinator接收到分配方案后把屬于每個consumer的方案放入SyncGroup請求的response返回給consumer接箫。
發(fā)送SyncGroup請求會同步每個consumer的狀態(tài)信息,在所有成員都接受到SyncGroup的response后朵诫,每個成員按照coordinator的方案進行工作辛友。
consumer group的分配方案是在consumer端執(zhí)行的。這樣即使以后分區(qū)策略發(fā)生了變更,也只需要重啟consumer實例即可废累,不需要重啟kafka broker邓梅。
到這里,我們介紹了kafka rebalance的原理邑滨,kafka rebalance的原理我們就講到這里了日缨。

最后編輯于
?著作權(quán)歸作者所有,轉(zhuǎn)載或內(nèi)容合作請聯(lián)系作者
  • 序言:七十年代末,一起剝皮案震驚了整個濱河市掖看,隨后出現(xiàn)的幾起案子匣距,更是在濱河造成了極大的恐慌,老刑警劉巖哎壳,帶你破解...
    沈念sama閱讀 219,110評論 6 508
  • 序言:濱河連續(xù)發(fā)生了三起死亡事件毅待,死亡現(xiàn)場離奇詭異,居然都是意外死亡归榕,警方通過查閱死者的電腦和手機尸红,發(fā)現(xiàn)死者居然都...
    沈念sama閱讀 93,443評論 3 395
  • 文/潘曉璐 我一進店門,熙熙樓的掌柜王于貴愁眉苦臉地迎上來刹泄,“玉大人外里,你說我怎么就攤上這事⊙” “怎么了?”我有些...
    開封第一講書人閱讀 165,474評論 0 356
  • 文/不壞的土叔 我叫張陵疙咸,是天一觀的道長县匠。 經(jīng)常有香客問我,道長撒轮,這世上最難降的妖魔是什么乞旦? 我笑而不...
    開封第一講書人閱讀 58,881評論 1 295
  • 正文 為了忘掉前任,我火速辦了婚禮题山,結(jié)果婚禮上兰粉,老公的妹妹穿的比我還像新娘。我一直安慰自己顶瞳,他們只是感情好玖姑,可當我...
    茶點故事閱讀 67,902評論 6 392
  • 文/花漫 我一把揭開白布。 她就那樣靜靜地躺著慨菱,像睡著了一般焰络。 火紅的嫁衣襯著肌膚如雪。 梳的紋絲不亂的頭發(fā)上符喝,一...
    開封第一講書人閱讀 51,698評論 1 305
  • 那天闪彼,我揣著相機與錄音,去河邊找鬼协饲。 笑死畏腕,一個胖子當著我的面吹牛缴川,可吹牛的內(nèi)容都是我干的。 我是一名探鬼主播描馅,決...
    沈念sama閱讀 40,418評論 3 419
  • 文/蒼蘭香墨 我猛地睜開眼把夸,長吁一口氣:“原來是場噩夢啊……” “哼!你這毒婦竟也來了流昏?” 一聲冷哼從身側(cè)響起扎即,我...
    開封第一講書人閱讀 39,332評論 0 276
  • 序言:老撾萬榮一對情侶失蹤,失蹤者是張志新(化名)和其女友劉穎况凉,沒想到半個月后谚鄙,有當?shù)厝嗽跇淞掷锇l(fā)現(xiàn)了一具尸體,經(jīng)...
    沈念sama閱讀 45,796評論 1 316
  • 正文 獨居荒郊野嶺守林人離奇死亡刁绒,尸身上長有42處帶血的膿包…… 初始之章·張勛 以下內(nèi)容為張勛視角 年9月15日...
    茶點故事閱讀 37,968評論 3 337
  • 正文 我和宋清朗相戀三年闷营,在試婚紗的時候發(fā)現(xiàn)自己被綠了。 大學時的朋友給我發(fā)了我未婚夫和他白月光在一起吃飯的照片知市。...
    茶點故事閱讀 40,110評論 1 351
  • 序言:一個原本活蹦亂跳的男人離奇死亡傻盟,死狀恐怖,靈堂內(nèi)的尸體忽然破棺而出嫂丙,到底是詐尸還是另有隱情娘赴,我是刑警寧澤,帶...
    沈念sama閱讀 35,792評論 5 346
  • 正文 年R本政府宣布跟啤,位于F島的核電站诽表,受9級特大地震影響,放射性物質(zhì)發(fā)生泄漏隅肥。R本人自食惡果不足惜竿奏,卻給世界環(huán)境...
    茶點故事閱讀 41,455評論 3 331
  • 文/蒙蒙 一、第九天 我趴在偏房一處隱蔽的房頂上張望腥放。 院中可真熱鬧泛啸,春花似錦、人聲如沸秃症。這莊子的主人今日做“春日...
    開封第一講書人閱讀 32,003評論 0 22
  • 文/蒼蘭香墨 我抬頭看了看天上的太陽种柑。三九已至宗雇,卻和暖如春,著一層夾襖步出監(jiān)牢的瞬間莹规,已是汗流浹背赔蒲。 一陣腳步聲響...
    開封第一講書人閱讀 33,130評論 1 272
  • 我被黑心中介騙來泰國打工, 沒想到剛下飛機就差點兒被人妖公主榨干…… 1. 我叫王不留,地道東北人舞虱。 一個月前我還...
    沈念sama閱讀 48,348評論 3 373
  • 正文 我出身青樓欢际,卻偏偏與公主長得像,于是被迫代替她去往敵國和親矾兜。 傳聞我的和親對象是個殘疾皇子损趋,可洞房花燭夜當晚...
    茶點故事閱讀 45,047評論 2 355

推薦閱讀更多精彩內(nèi)容