亚洲激情专区-91九色丨porny丨老师-久久久久久久女国产乱让韩-国产精品午夜小视频观看

溫馨提示×

溫馨提示×

您好,登錄后才能下訂單哦!

密碼登錄×
登錄注冊×
其他方式登錄
點擊 登錄注冊 即表示同意《億速云用戶服務條款》

如何分析Kafka中的reblance

發布時間:2021-12-09 15:30:33 來源:億速云 閱讀:149 作者:柒染 欄目:大數據

今天就跟大家聊聊有關如何分析Kafka中的reblance,可能很多人都不太了解,為了讓大家更加了解,小編給大家總結了以下內容,希望大家根據這篇文章可以有所收獲。

Kafka常見的消費模式會以組進行組織,通常Kafa會將Topic的分區均勻的分配給同一個組下的不同實例,通常的策略有以下三種:

  • Range:將單個Topic的所有分區按照順序排列,然后把這些分區劃分成固定大小的分區段并分配給每個consumer,默認策略

  • Round:將訂閱所有的Topic分區輪詢分配給每個conumser

  • Sticky:規避數據傾斜,最大限度保證兩次reblance間維持之前的分配方案

目前觸發reblance主要有以下幾種情況:

  • 組成員發生變更:新consumer加入離開組、consumer意外崩潰

  • 組訂閱的Topic數發生變化:比如基于正則表達式的訂閱,當匹配正則表達式的新Topic被創建時

  • 組訂閱的Topic的分區數目發生變更時

reblance generation

consumer group可以執行多次reblance,為了保護consumer group特別是防止無效的offset提交,reblance generation通常用來標識某次reblance,每經歷一次reblance該值都會加1,默認值是從0開始。假如一個genertion值為1的consumer發生了延遲提交,但是reblance已經產生了新的group成員并且generation值已經變為了2,那么該conumse的提交將會被拒絕(ILLEGAL_EXCEPTION)。

reblance協議

Kafka會使用以下4組請求來完成reblance。

  • JoinGroup:consumer請求入組

  • SyncGroup:group leader把分配方案同步更新到組內所有成員中

  • HeartBeat:consumer定期向coordinator匯報心跳表明自己依然存活

  • LeaveGroup:consumer主動請求coordinator自己將要離組

除了上面4組請求外,還有一個特殊的請求:

  • DescribeGroup:查看組的所有信息,包括成員信息、協議信息、分配方案以及訂閱信息等。該請求不參與reblance,主要是管理員使用。

reblance過程中,coordinator需要接收來自consumer的JoinGroup和SyncGroup請求。當reblance成功以后,consumer定期向coordinator發送HeartBeat請求,consumer同時也會根據HeartBeat響應中是否包含REBLANCEINPROCESS來判斷當前group是否開啟了新一輪reblance。當consumer主動離組時,需要向coordinator發送LeaveGroup請求。

reblance流程

consumer reblance之前需要首先選定coordinator所在的broker(并且建立Socket連接),算法:

  • Math.abs(groupId.hashCode)%offsets.topic.num.partitions。

reblance主要分為兩步進行:

  1. 加入組:組內的所有consumer向coordinator發送JoinGroup請求,當收集好所有的JoinGroup請求后,coorinator需要從中選一個group leader,并把所有成員信息以及他們的訂閱信息發送給leader。

  2. 同步更新分配方案:group leader負責分配消費方案,具體策略有文章開頭的三種。分配完成后,leader會將分配方案封裝進SyncGroup請求然后發送給coordinator。在這一步中所有的consumer都會發送SyncGroup請求,只不過只有leader中包含了分配方案。coordinator收到請求后,將每個consumer的消費信息進行抽取然后作為SyncGroup的響應發送給對應的consumer。

看完上述內容,你們對如何分析Kafka中的reblance有進一步的了解嗎?如果還想了解更多知識或者相關內容,請關注億速云行業資訊頻道,感謝大家的支持。

向AI問一下細節

免責聲明:本站發布的內容(圖片、視頻和文字)以原創、轉載和分享為主,文章觀點不代表本網站立場,如果涉及侵權請聯系站長郵箱:is@yisu.com進行舉報,并提供相關證據,一經查實,將立刻刪除涉嫌侵權內容。

AI

吴堡县| 聂拉木县| 浦东新区| 博野县| 昌宁县| 栖霞市| 三原县| 宜兴市| 信阳市| 成安县| 宿迁市| 龙陵县| 洛扎县| 迭部县| 普洱| 瓮安县| 余庆县| 青川县| 台南县| 武功县| 云梦县| 鹰潭市| 绥化市| 南涧| 钦州市| 绩溪县| 孟村| 平湖市| 谢通门县| 德安县| 治多县| 禹城市| 且末县| 佛教| 安义县| 奉节县| 深泽县| 伊川县| 玛纳斯县| 涞源县| 天津市|