国产 无码 综合区,色欲AV无码国产永久播放,无码天堂亚洲国产AV,国产日韩欧美女同一区二区

Kafka篇——Kafka集群Controller、Rebalance和HW的詳細(xì)介紹,保姆級(jí)教程!

這篇具有很好參考價(jià)值的文章主要介紹了Kafka篇——Kafka集群Controller、Rebalance和HW的詳細(xì)介紹,保姆級(jí)教程!。希望對(duì)大家有所幫助。如果存在錯(cuò)誤或未考慮完全的地方,請(qǐng)大家不吝賜教,您也可以點(diǎn)擊"舉報(bào)違法"按鈕提交疑問(wèn)。

Controller

一、概念
在Kafka中,Controller是Kafka集群中的一個(gè)角色,負(fù)責(zé)管理集群的元數(shù)據(jù)、分區(qū)分配、副本管理等功能。
Controller的主要職責(zé)包括:
1. 元數(shù)據(jù)管理:Controller負(fù)責(zé)維護(hù)Kafka集群的元數(shù)據(jù),包括broker的存活狀態(tài)、分區(qū)的分配情況、副本的分配情況等。它通過(guò)與Zookeeper進(jìn)行交互,監(jiān)控集群中broker的狀態(tài)變化,并更新集群的元數(shù)據(jù)。
通俗的講,就是當(dāng)Controller檢測(cè)到某個(gè)分區(qū)的ISR集合發(fā)生變化時(shí),由Controller負(fù)責(zé)通知所有Broker更新其元數(shù)據(jù)信息
2. 分區(qū)分配:當(dāng)有新的topic創(chuàng)建或者有新的broker加入集群時(shí),Controller根據(jù)一定的策略來(lái)進(jìn)行分區(qū)分配。它會(huì)根據(jù)集群的負(fù)載情況、副本的分布情況等因素,將分區(qū)均勻地分配給各個(gè)broker。
3. 副本管理:Controller負(fù)責(zé)管理副本的狀態(tài)和分配情況。它會(huì)監(jiān)控副本的健康狀態(tài),當(dāng)副本出現(xiàn)故障或離線時(shí),Controller會(huì)接管該副本的分區(qū),并重新分配該副本的副本。比如Leader副本掛了,Controller會(huì)去查看ISR中存的分區(qū),排在第一位的肯定是上一個(gè)Leader副本,后面的是理論上網(wǎng)絡(luò)狀態(tài)更優(yōu)的分區(qū),那么Controller,會(huì)將這個(gè)分區(qū)升級(jí)成Leader
4. 集群狀態(tài)管理:Controller會(huì)監(jiān)控整個(gè)集群的狀態(tài),并且在集群出現(xiàn)故障或者變化時(shí)做出相應(yīng)的調(diào)整。例如,當(dāng)集群中的broker宕機(jī)時(shí),Controller會(huì)觸發(fā)副本重新分配,確保分區(qū)的高可用性。

二、Controller選舉流程
Kafaka集群在啟動(dòng)的時(shí)候,會(huì)在Zookeeper中創(chuàng)建一個(gè)臨時(shí)序號(hào)節(jié)點(diǎn),序號(hào)最小的也就是最先啟動(dòng)的Broker節(jié)點(diǎn),被認(rèn)定為是Controller,繼續(xù)管理集群中的相關(guān)數(shù)據(jù)、分區(qū)的分配等功能

Rebalance

一、Rebalance機(jī)制
Kafka的Rebalance機(jī)制是一種自動(dòng)化的重平衡過(guò)程,用于在Consumer Group中的消費(fèi)者數(shù)量或消費(fèi)的分區(qū)數(shù)發(fā)生變化時(shí)重新分配消費(fèi)者和分區(qū)之間的關(guān)系。Rebalance機(jī)制確保了Consumer Group中的所有消費(fèi)者能夠均勻地分配訂閱的主題分區(qū),并保持負(fù)載均衡。
當(dāng)Consumer Group中的消費(fèi)者數(shù)量發(fā)生變化,或者消費(fèi)的分區(qū)數(shù)發(fā)生變化時(shí),Kafka會(huì)自動(dòng)觸發(fā)Rebalance過(guò)程。例如,當(dāng)某個(gè)消費(fèi)者實(shí)例掛掉時(shí),Kafka會(huì)自動(dòng)將該消費(fèi)者所擁有的分區(qū)重新分配給其他消費(fèi)者實(shí)例。同樣地,當(dāng)新加入的消費(fèi)者實(shí)例加入Consumer Group時(shí),Kafka也會(huì)重新分配分區(qū)給新加入的實(shí)例。
Rebalance過(guò)程中,消費(fèi)者無(wú)法從Kafka讀取消息,因此會(huì)對(duì)Kafka的TPS(每秒傳輸?shù)南⒘浚┊a(chǎn)生影響。如果Kafka集群中有大量的節(jié)點(diǎn),例如數(shù)百個(gè)節(jié)點(diǎn),那么重平衡可能會(huì)耗時(shí)極多,因此應(yīng)盡量避免在系統(tǒng)高峰期的重平衡發(fā)生。
為了優(yōu)化Rebalance過(guò)程,可以通過(guò)設(shè)置合理的配置參數(shù)來(lái)控制Rebalance的行為。例如,可以設(shè)置max.poll.interval.ms參數(shù)來(lái)控制消費(fèi)者在發(fā)生Rebalance時(shí)等待分區(qū)重新分配的最長(zhǎng)時(shí)間,以避免長(zhǎng)時(shí)間無(wú)法讀取消息。
總之,Kafka的Rebalance機(jī)制提供了一種自動(dòng)化的方式來(lái)處理Consumer Group中的消費(fèi)者和分區(qū)變化,確保了負(fù)載均衡和系統(tǒng)的可用性。

二、Rebalance機(jī)制重新分配細(xì)節(jié)
觸發(fā)Rebalance機(jī)前提:
消費(fèi)者沒有指明分區(qū)消費(fèi),當(dāng)消費(fèi)組里的消費(fèi)者和分區(qū)的關(guān)系發(fā)生變化,那么就會(huì)觸發(fā)Rebalance機(jī)制,這個(gè)機(jī)制會(huì)重新調(diào)整消費(fèi)者消費(fèi)哪個(gè)分區(qū)。

在觸發(fā)Rebalance機(jī)制前,消費(fèi)者在哪個(gè)分區(qū)消費(fèi),有下面3種策略:
1、range范圍分配:
在Kafka中,消費(fèi)者消費(fèi)分區(qū)的策略有多種,其中一種默認(rèn)的分配策略是Range范圍分配。這種策略可以確保每個(gè)消費(fèi)者消費(fèi)的分區(qū)數(shù)量是均衡的。
以下是Kafka中Range范圍分配的示例公式:
n = 分區(qū)數(shù)量 / 消費(fèi)者數(shù)量
m = 分區(qū)數(shù)量 % 消費(fèi)者數(shù)量
前m個(gè)消費(fèi)者消費(fèi)n+1個(gè)分區(qū),剩余消費(fèi)者消費(fèi)n個(gè)分區(qū)。
需要注意的是,Range范圍分配策略是針對(duì)每個(gè)主題(topic)的。要配置消費(fèi)者的分區(qū)分配策略為Range范圍分配,需要將消費(fèi)者的partition.assignment.strategy配置為org.apache.kafka.clients.consumer.RangeAssignor。

2、輪詢:輪著消費(fèi)

3、sticky:在觸發(fā)Rebalance后,在消費(fèi)者消費(fèi)的原分區(qū)不變的基礎(chǔ)上進(jìn)行調(diào)整,不會(huì)改變之前的分配。如果這個(gè)策略沒有開,那么就要全部進(jìn)行重新分配,非常消耗性能,建議開啟

HW

一、HW介紹
在Kafka中,HW(High Watermark)“高水位”是一個(gè)關(guān)鍵概念,用于表示消息復(fù)制的進(jìn)度。具體來(lái)說(shuō),HW表示已經(jīng)成功復(fù)制到所有副本的消息的位置。
HW之前的所有消息都被認(rèn)為是已提交的消息,這意味著消費(fèi)者可以安全地消費(fèi)這些消息。消費(fèi)者最多只能消費(fèi)到HW所在的位置,另外每個(gè)副本都有HW,
Leader和Follower各自更新自己的HW狀態(tài),對(duì)于Leader重新寫入消息,消費(fèi)者不能立即消費(fèi),Leader會(huì)等待該消息被所有ISR中的副本同步并更新HW,
此時(shí)消息才能被消費(fèi)者消費(fèi)。這樣就保證了如果Leader所在的Broker失效掛掉了,不會(huì)在新的Leader副本中重復(fù)消費(fèi)

二、HW圖示

Kafka篇——Kafka集群Controller、Rebalance和HW的詳細(xì)介紹,保姆級(jí)教程!,Kafka,kafka,分布式

根據(jù)上圖所示,為了防止消息丟失,保證消費(fèi)者的安全消費(fèi)。只有當(dāng)Leader副本將消息同步到其他所有的副本后,HW才會(huì)下移動(dòng),才能消費(fèi)到第5條消息,
否則只能消費(fèi)到第4條消息

LEO

Kafka中的LEO(Log End Offset)表示當(dāng)前日志文件中下一條待寫入消息的offset。每個(gè)partition的log最后一條Message的位置都會(huì)有一個(gè)LEO。它用于標(biāo)識(shí)消息追加到文件的最后位置。
此外,LEO還是Log End Offset的縮寫,用于標(biāo)識(shí)當(dāng)前副本中最后一條消息的offset。當(dāng)生產(chǎn)者向Leader副本追加消息時(shí),Leader副本的LEO標(biāo)記會(huì)增加;當(dāng)Follower副本成功從Leader副本拉取消息并更新到本地時(shí),F(xiàn)ollower副本的LEO也會(huì)增加。

至此,關(guān)于Kafka的常見關(guān)鍵技術(shù)點(diǎn)介紹完畢,知識(shí)點(diǎn)較多,希望大家能夠反復(fù)學(xué)習(xí),常學(xué)常新奧!文章來(lái)源地址http://www.zghlxwxcb.cn/news/detail-803667.html

到了這里,關(guān)于Kafka篇——Kafka集群Controller、Rebalance和HW的詳細(xì)介紹,保姆級(jí)教程!的文章就介紹完了。如果您還想了解更多內(nèi)容,請(qǐng)?jiān)谟疑辖撬阉鱐OY模板網(wǎng)以前的文章或繼續(xù)瀏覽下面的相關(guān)文章,希望大家以后多多支持TOY模板網(wǎng)!

本文來(lái)自互聯(lián)網(wǎng)用戶投稿,該文觀點(diǎn)僅代表作者本人,不代表本站立場(chǎng)。本站僅提供信息存儲(chǔ)空間服務(wù),不擁有所有權(quán),不承擔(dān)相關(guān)法律責(zé)任。如若轉(zhuǎn)載,請(qǐng)注明出處: 如若內(nèi)容造成侵權(quán)/違法違規(guī)/事實(shí)不符,請(qǐng)點(diǎn)擊違法舉報(bào)進(jìn)行投訴反饋,一經(jīng)查實(shí),立即刪除!

領(lǐng)支付寶紅包贊助服務(wù)器費(fèi)用

相關(guān)文章

  • 【運(yùn)維知識(shí)大神篇】超詳細(xì)的ELFK日志分析教程10(kafka集群原理+基本使用+zookeeper和kafka堆內(nèi)存調(diào)優(yōu)+kafka監(jiān)控和壓力測(cè)試+filebeat和logstash對(duì)接kafka)

    【運(yùn)維知識(shí)大神篇】超詳細(xì)的ELFK日志分析教程10(kafka集群原理+基本使用+zookeeper和kafka堆內(nèi)存調(diào)優(yōu)+kafka監(jiān)控和壓力測(cè)試+filebeat和logstash對(duì)接kafka)

    本篇文章繼續(xù)給大家介紹ELFK日志分析,我們先前介紹了ELFK架構(gòu),zookeeper部署使用,kafka的部署,僅差kafka使用就將整個(gè)體系融匯貫通了。我們本篇文章將以kafka為核心,詳細(xì)介紹kafka使用,最終將kafka融入ELFK架構(gòu)中,大致內(nèi)容見下面目錄。 目錄 kafka集群原理 一、專業(yè)術(shù)語(yǔ) 二、

    2024年02月04日
    瀏覽(17)
  • 【python plotly庫(kù)介紹】從視覺到洞見:?;鶊D在業(yè)務(wù)分析中的應(yīng)用【保姆級(jí)教程過(guò)于詳細(xì)珍藏版】

    【python plotly庫(kù)介紹】從視覺到洞見:桑基圖在業(yè)務(wù)分析中的應(yīng)用【保姆級(jí)教程過(guò)于詳細(xì)珍藏版】

    ???作者介紹:10年大廠數(shù)據(jù)經(jīng)營(yíng)分析經(jīng)驗(yàn),現(xiàn)任大廠數(shù)據(jù)部門負(fù)責(zé)人。 會(huì)一些的技術(shù):數(shù)據(jù)分析、算法、SQL、大數(shù)據(jù)相關(guān)、python 歡迎加入社區(qū):碼上找工作 作者專欄每日更新: LeetCode解鎖1000題: 打怪升級(jí)之旅 python數(shù)據(jù)分析可視化:企業(yè)實(shí)戰(zhàn)案例 備注說(shuō)明:方便大家閱讀

    2024年04月17日
    瀏覽(24)
  • kafka的rebalance機(jī)制

    再平衡:Reblance是一種協(xié)議,規(guī)定了一個(gè)Consumer Group下所有Consumer如何達(dá)成一致,來(lái)分配訂閱Topic的每個(gè)分區(qū),盡量讓每個(gè)消費(fèi)者分配到相對(duì)均勻的分區(qū),使Consumer的資源都能得到充分利用,防止有些Consumer比較忙,有的Consumer比較閑。 當(dāng)kafka感知到存在讓分區(qū)和消費(fèi)者分配不均

    2024年02月16日
    瀏覽(9)
  • SpringMVC框架中@Controller類的方法的返回值的詳細(xì)介紹

    SpringMVC框架中@Controller類的方法的返回值的詳細(xì)介紹

    目錄 前言 1. 返回值類型為ModelAndView 2.? 返回值為String(視圖) 3.? 返回值為void 4.? 返回值為Object 5. 返回值為L(zhǎng)ist ?6. 返回值為String(數(shù)據(jù)) 在SpringMVC框架中,我們最常見的就是@Controller注解,可以說(shuō)是只要見到了@Controller注解,就可以說(shuō)明當(dāng)前的項(xiàng)目使用了SpringMVC框架。那么在使

    2024年02月19日
    瀏覽(20)
  • 98、簡(jiǎn)述Kafka的rebalance機(jī)制

    consumer group中的消費(fèi)者與topic下的partion重新匹配的過(guò)程 何時(shí)會(huì)產(chǎn)生rebalance: consumer group中的成員個(gè)數(shù)發(fā)生變化 consumer 消費(fèi)超時(shí) group訂閱的topic個(gè)數(shù)發(fā)生變化 group訂閱的topic的分區(qū)數(shù)發(fā)生變化 coordinator: 通常是partition的leader節(jié)點(diǎn)所在的broker,負(fù)責(zé)監(jiān)控group中consumer的存活,consumer維

    2024年02月15日
    瀏覽(14)
  • Kafka-消費(fèi)者-KafkaConsumer分析-Rebalance

    Kafka-消費(fèi)者-KafkaConsumer分析-Rebalance

    在開始介紹Rebalance操作的實(shí)現(xiàn)細(xì)節(jié)之前,我們需要明確在哪幾種情況下會(huì)觸發(fā)Rebalance操作: 有新的消費(fèi)者加入Consumer Group。 有消費(fèi)者宕機(jī)下線。消費(fèi)者并不一定需要真正下線,例如遇到長(zhǎng)時(shí)間的GC、網(wǎng)絡(luò)延遲導(dǎo)致消費(fèi)者長(zhǎng)時(shí)間未向GroupCoordinator發(fā)送HeartbeatRequest時(shí),GroupCoordina

    2024年01月20日
    瀏覽(19)
  • flink kafka消費(fèi)者如何處理kafka主題的rebalance

    flink kafka消費(fèi)者如何處理kafka主題的rebalance

    我們?nèi)粘J褂胟afka客戶端消費(fèi)kafka主題的消息時(shí),當(dāng)消費(fèi)者退出/加入消費(fèi)者組,kafka主題分區(qū)數(shù)有變等事件發(fā)生時(shí),都會(huì)導(dǎo)致rebalance的發(fā)生,此時(shí)一般情況下,如果我們不自己處理offset,我們不需要理會(huì)這個(gè)rebalance的,當(dāng)rebalance完成后,每個(gè)消費(fèi)者會(huì)從__consumer_offsets中獲取每個(gè)

    2024年02月14日
    瀏覽(27)
  • 分布式 - 消息隊(duì)列Kafka:Kafka消費(fèi)者分區(qū)再均衡(Rebalance)

    分布式 - 消息隊(duì)列Kafka:Kafka消費(fèi)者分區(qū)再均衡(Rebalance)

    01. Kafka 消費(fèi)者分區(qū)再均衡是什么? 消費(fèi)者群組里的消費(fèi)者共享主題分區(qū)的所有權(quán)。當(dāng)一個(gè)新消費(fèi)者加入群組時(shí),它將開始讀取一部分原本由其他消費(fèi)者讀取的消息。當(dāng)一個(gè)消費(fèi)者被關(guān)閉或發(fā)生崩潰時(shí),它將離開群組,原本由它讀取的分區(qū)將由群組里的其他消費(fèi)者讀取。 分區(qū)

    2024年02月12日
    瀏覽(31)
  • Kafka rebalance 的幾種原因與解決方案

    網(wǎng)上有很多文章講述 Kafka rebalance 的原理,本文是列舉常見的幾種 rebalance 場(chǎng)景。 rebalance 期間,當(dāng)前 consumer group 的所有 consumer 都要暫停消費(fèi),開銷較大。因此應(yīng)該盡量減少 rebalance ,而 relalance 的原因通常是 consumer 數(shù)量變化,常見的幾種情況如下: 如果一個(gè) consumer 剛啟動(dòng),

    2024年02月01日
    瀏覽(19)
  • Kafka-消費(fèi)者-Consumer Group Rebalance設(shè)計(jì)

    Kafka-消費(fèi)者-Consumer Group Rebalance設(shè)計(jì)

    在同一個(gè)Consumer Group中,同一個(gè)Topic的不同分區(qū)會(huì)分配給不同的消費(fèi)者進(jìn)行消費(fèi),那么為消費(fèi)者分配分區(qū)的操作是在Kafka服務(wù)端完成的嗎?分區(qū)是如何進(jìn)行分配呢?下面來(lái)分析Rebalance操作的原理。 Kafka最開始的解決方案是通過(guò)ZooKeeper的Watcher實(shí)現(xiàn)的。 每個(gè)Consumer Group在ZooKeeper下都維

    2024年01月19日
    瀏覽(29)

覺得文章有用就打賞一下文章作者

支付寶掃一掃打賞

博客贊助

微信掃一掃打賞

請(qǐng)作者喝杯咖啡吧~博客贊助

支付寶掃一掃領(lǐng)取紅包,優(yōu)惠每天領(lǐng)

二維碼1

領(lǐng)取紅包

二維碼2

領(lǐng)紅包