<output id="qn6qe"></output>

    1. <output id="qn6qe"><tt id="qn6qe"></tt></output>
    2. <strike id="qn6qe"></strike>

      亚洲 日本 欧洲 欧美 视频,日韩中文字幕有码av,一本一道av中文字幕无码,国产线播放免费人成视频播放,人妻少妇偷人无码视频,日夜啪啪一区二区三区,国产尤物精品自在拍视频首页,久热这里只有精品12

      Kafka的元數(shù)據(jù)Metadata

      元數(shù)據(jù)是指Kafka集群的元數(shù)據(jù),這些元數(shù)據(jù)具體記錄了集群中有哪些主題,這些主題有哪些分區(qū),每個(gè)分區(qū)的leader副本分配在哪個(gè)節(jié)點(diǎn)上,follower副本分配在哪些節(jié)點(diǎn)上,哪些副本在AR、ISR等集合中,集群中有哪些節(jié)點(diǎn),控制器節(jié)點(diǎn)又是哪一個(gè)。

       

      Kafka 的元數(shù)據(jù)(Metadata) 正是描述集群內(nèi)部狀態(tài)和拓?fù)浣Y(jié)構(gòu)的核心數(shù)據(jù),它就像一張實(shí)時(shí)更新的地圖,指引著生產(chǎn)者、消費(fèi)者以及集群自身如何正確地運(yùn)作。

       

      一、Kafka的元數(shù)據(jù)包含哪些信息

      Cluster Basics、Topics、Partitions、Replica State、Controller

       

      • 集群基礎(chǔ)信息(Cluster Basics)
        • 集群ID(Cluster):集群的唯一標(biāo)識(shí)符
        • 代理節(jié)點(diǎn)(Brokers):集群中所有活躍的Broker列表,包括每個(gè)Broker的ID、主機(jī)名(hostname)和端口(port)

       

      • 主題與分區(qū)信息(Topics&Partitions) -- 元數(shù)據(jù)最核心部分
        • 主題列表:集群中存在的所有主題
        • 分區(qū)列表:每個(gè)主題包含哪些分區(qū)
        • Leader副本分配:每個(gè)分區(qū)的Leader副本在哪個(gè)Broker上。重點(diǎn)信息,因?yàn)樗械纳a(chǎn)者和消費(fèi)者讀寫(xiě)請(qǐng)求都必須發(fā)送到分區(qū)的Leader副本
        • 副本分配:每個(gè)分區(qū)的所有副本(無(wú)論時(shí)Leader還是Follower)分布在哪些Broker上,這定義了分區(qū)的冗余副本策略

       

      • 副本狀態(tài)信息(Replica State)-- 保證數(shù)據(jù)一致性和可用性的關(guān)鍵
        • AR(已分配的副本):為某個(gè)分區(qū)分配的所有副本的集合。這是一個(gè)靜態(tài)的配置列表
        • ISR(同步副本):與 Leader 副本保持同步的副本集合(包括 Leader 自己)。ISR 中的副本都是“存活”并且與 Leader 的差距(消息延遲)在一個(gè)可容忍的閾值(由lag.time.max.ms 配置)之內(nèi)。只有 ISR 中的副本才有資格在 Leader 宕機(jī)時(shí)被選舉為新的 Leader。
        • OSR(不同步副本):不同步的副本集合(通常由于副本宕機(jī)、網(wǎng)絡(luò)分區(qū)或同步速度過(guò)慢導(dǎo)致)。

      AR = ISR + OSR

       

      • 控制器信息(Controller)

      控制器節(jié)點(diǎn)(Controller Broker):記錄當(dāng)前哪個(gè)Broker扮演著控制器(Controller)的角色。控制器是集群的“大腦”,負(fù)責(zé)管理分區(qū)和副本的狀態(tài),包括 Leader選舉、將Broker加入ISR、從ISR中移除等管理操作。

       

      二、為什么元數(shù)據(jù)這么重要?

      • 對(duì)于生產(chǎn)者
        • 發(fā)送消息前,需要先請(qǐng)求元數(shù)據(jù),才知道目標(biāo)主題的每個(gè)分區(qū)的Leader 在哪臺(tái)Broker上
        • 根據(jù)分區(qū)策略,將消息發(fā)送到對(duì)應(yīng)分區(qū)的Leader Broker

       

      • 對(duì)于消費(fèi)者
        • 啟動(dòng)該或者重平衡時(shí),需要獲取元數(shù)據(jù),才知道要消費(fèi)的主題有哪些分區(qū)
        • 通過(guò)和 Group Coordinator 交互,確定自己負(fù)責(zé)消費(fèi)哪些分區(qū)
        • 連接這些分區(qū)的Leader副本,開(kāi)始拉取消息

       

      • 對(duì)于集群本身
        • 控制器依靠元數(shù)據(jù)來(lái)感知集群狀態(tài)變化
        • 當(dāng)某個(gè)Broker宕機(jī),控制器會(huì)檢測(cè)到,并基于元數(shù)據(jù)(如ISR列表),為受影響的分區(qū)選舉新的Leader,更新元數(shù)據(jù),并將元數(shù)據(jù)廣播給所有存活的Broker,從而實(shí)現(xiàn)故障轉(zhuǎn)移

       

      三、元數(shù)據(jù)是怎么管理和傳播的?

      • 存儲(chǔ)與管理:

      元數(shù)據(jù)由Kafka集群的控制器(Controller)節(jié)點(diǎn)負(fù)責(zé)管理和維護(hù)

       

      • 傳播與緩存

      每個(gè)Broker都會(huì)在本地緩存一份最新的元數(shù)據(jù),當(dāng)元數(shù)據(jù)發(fā)生變化時(shí)(如Leader 重新選舉),控制器會(huì)將最新的元數(shù)據(jù)廣播給所有 Broker,使它們的緩存失效并更新。

       

      • 客戶端獲取

      客戶端(生產(chǎn)者和消費(fèi)者)會(huì)向任意一個(gè) Broker(通過(guò) bootstrap.servers 配置連接),該Broker會(huì)返回其緩存的元數(shù)據(jù),客戶端也會(huì)緩存這份元數(shù)據(jù),并定期刷新或在收到“元數(shù)據(jù)已過(guò)期”的錯(cuò)誤時(shí)主動(dòng)刷新。

       

      總結(jié):

       Kafka 元數(shù)據(jù)是一份動(dòng)態(tài)更新的、中心化的路由表和狀態(tài)表,確保了分布在多個(gè)節(jié)點(diǎn)上的海量數(shù)據(jù)能夠被高效、正確、高可用地訪問(wèn)和管理。沒(méi)有元數(shù)據(jù),Kafka 集群將無(wú)法正常工作。

      四、控制器在Zookeeper 模式 vs. KRaft 模式下的核心區(qū)別

      集群的控制器(Controller)節(jié)點(diǎn),本質(zhì)上就是 Kafka 集群中的一個(gè) Broker(節(jié)點(diǎn))。它不是獨(dú)立于集群之外的特殊進(jìn)程或機(jī)器,而是由集群內(nèi)部通過(guò)選舉機(jī)制從所有活躍的 Broker 中選舉出來(lái)的一個(gè),讓它額外承擔(dān)了“控制器”這個(gè)管理角色。

      這個(gè)被選為控制器的 Broker,除了處理普通的數(shù)據(jù)讀寫(xiě)請(qǐng)求(作為 Leader 副本)之外,還負(fù)責(zé)執(zhí)行所有的管理操作,如分區(qū) Leader 選舉、管理分區(qū)和副本的狀態(tài)、處理 Broker 上下線等。

       

      最大的區(qū)別在于:控制器如何被選舉出來(lái)以及元數(shù)據(jù)存儲(chǔ)同步的方式。

      4.1  Apache Kafka + Zookeeper 模式 (傳統(tǒng)模式)

      在這種架構(gòu)下,Kafka 嚴(yán)重依賴一個(gè)外部的 Apache Zookeeper 集群。

       

      1、控制器的選舉:

      1.  每個(gè) Broker 啟動(dòng)時(shí),都會(huì)嘗試在 Zookeeper 的一個(gè)特定路徑(如 `/controller`)上創(chuàng)建一個(gè)臨時(shí)節(jié)點(diǎn)(Ephemeral Node)。
      2.  第一個(gè)成功創(chuàng)建該節(jié)點(diǎn)的 Broker 就成為控制器。這個(gè)過(guò)程通過(guò) Zookeeper 的原子性和一致性來(lái)保證只有一個(gè)控制器當(dāng)選。
      3.  其他 Broker 會(huì)在該路徑上注冊(cè)監(jiān)聽(tīng)器(Watcher)。
      4.  如果當(dāng)前的控制器 Broker 宕機(jī)或與 Zookeeper 斷開(kāi)連接(會(huì)話過(guò)期),其創(chuàng)建的臨時(shí)節(jié)點(diǎn)會(huì)自動(dòng)消失。
      5.  所有其他 Broker 通過(guò) Watcher 會(huì)立刻感知到控制器下線,并開(kāi)始新一輪的競(jìng)選,爭(zhēng)相創(chuàng)建 `/controller` 節(jié)點(diǎn)來(lái)成為新的控制器。

       

      2、數(shù)據(jù)的存儲(chǔ)與同步:

      1.  Zookeeper 是“真理之源”:所有關(guān)鍵的集群元數(shù)據(jù)(如主題配置、AR、ISR 列表)都持久化在 Zookeeper 中。
      2.  控制器是“管理者”:控制器監(jiān)聽(tīng) Zookeeper 上的變化,并執(zhí)行相應(yīng)的管理操作(例如,它發(fā)現(xiàn)一個(gè) Broker 的臨時(shí)節(jié)點(diǎn)消失了,就會(huì)觸發(fā)該 Broker 上所有分區(qū)的 Leader 選舉)。
      3.  Broker 緩存元數(shù)據(jù):每個(gè) Broker 會(huì)在本地緩存一份元數(shù)據(jù)。當(dāng)元數(shù)據(jù)發(fā)生變化時(shí),控制器負(fù)責(zé)將最新的元數(shù)據(jù)推送(廣播)給所有其他的 Broker,以便它們更新本地緩存。

       

      3、此模式的缺點(diǎn):

          運(yùn)維復(fù)雜:需要部署和管理兩個(gè)獨(dú)立的分布式系統(tǒng)(Kafka 和 Zookeeper)。

          性能瓶頸:大量的元數(shù)據(jù)操作(尤其是大規(guī)模集群下)需要與 Zookeeper 交互,Zookeeper 可能成為擴(kuò)展的瓶頸。

          腦裂風(fēng)險(xiǎn):雖然較低,但在網(wǎng)絡(luò)分區(qū)等極端情況下,依賴外部協(xié)調(diào)服務(wù)會(huì)引入潛在的復(fù)雜性。

      2. KRaft 模式 (Kafka Raft Metadata mode)

      從 Kafka 3.0 開(kāi)始,官方推出了 KRaft 模式,摒棄了對(duì) Zookeeper 的依賴,使用一種基于 Raft 共識(shí)算法的新機(jī)制來(lái)管理元數(shù)據(jù)。

       

      2.1 控制器的選舉與角色:
      1.  節(jié)點(diǎn)角色分離:在 KRaft 模式下,Broker 的角色被清晰地分為兩種:

      Controller 節(jié)點(diǎn):只負(fù)責(zé)處理元數(shù)據(jù)請(qǐng)求和共識(shí)協(xié)議,不服務(wù)客戶端的生產(chǎn)消費(fèi)請(qǐng)求。

      Broker 節(jié)點(diǎn):只負(fù)責(zé)處理客戶端的生產(chǎn)消費(fèi)請(qǐng)求(數(shù)據(jù)讀寫(xiě)),不參與元數(shù)據(jù)共識(shí)。

       

      1.  使用 Raft 協(xié)議選舉:

      一組 Controller 節(jié)點(diǎn)組成一個(gè) Raft 仲裁(Quorum)。它們內(nèi)部使用 Raft 共識(shí)算法來(lái)選舉出一個(gè) Leader(也就是有效的控制器),其他 Controller 節(jié)點(diǎn)作為 Follower。

       

      1.  Raft 算法保證了強(qiáng)一致性,只要超過(guò)半數(shù)的 Controller 節(jié)點(diǎn)存活,集群就能正常選舉出 Leader 并工作。

       

      2.2 元數(shù)據(jù)的存儲(chǔ)與同步:
      1.  元數(shù)據(jù)日志是“真理之源”:所有元數(shù)據(jù)的變更(例如創(chuàng)建主題、副本變化)都被作為一條條消息,追加到一個(gè)內(nèi)部的 `__cluster_metadata` 主題中。這個(gè)主題本身就是一個(gè) Raft 日志。
      2.  控制器仲裁管理日志:Controller 節(jié)點(diǎn)組成的仲裁負(fù)責(zé)維護(hù)這個(gè)元數(shù)據(jù)日志。Leader Controller 將變更寫(xiě)入日志,F(xiàn)ollower Controllers 復(fù)制這個(gè)日志,從而實(shí)現(xiàn)元數(shù)據(jù)的同步和持久化。
      3.  Broker 從控制器獲取元數(shù)據(jù):Broker 節(jié)點(diǎn)不再?gòu)?Zookeeper 獲取元數(shù)據(jù),而是通過(guò)從 Controller 仲裁拉取最新的元數(shù)據(jù)快照和更新來(lái)保持自己本地的元數(shù)據(jù)緩存是最新的。

       

      KRaft 模式的優(yōu)點(diǎn):

          架構(gòu)簡(jiǎn)化:無(wú)需再部署和管理 Zookeeper,只需要 Kafka 本身,極大地降低了運(yùn)維復(fù)雜度。

          性能與擴(kuò)展性提升:元數(shù)據(jù)的操作不再受限于外部系統(tǒng),吞吐量更高,延遲更低,能夠輕松支持?jǐn)?shù)百萬(wàn)個(gè)分區(qū)的大規(guī)模集群。

          更強(qiáng)的一致性:基于 Raft 協(xié)議,提供了更強(qiáng)、更清晰的元數(shù)據(jù)一致性保證。

          更快的控制器故障轉(zhuǎn)移:控制器故障切換時(shí)間從秒級(jí)降低到毫秒級(jí)。

       

      對(duì)比:

      特性

      Zookeeper 模式

      KRaft 模式

      外部依賴

      強(qiáng)依賴外部 Zookeeper 集

      無(wú)外部依賴,自管理

      控制器選舉

      通過(guò)在 Zookeeper 上搶占臨時(shí)節(jié)點(diǎn)

      通過(guò) Raft 共識(shí)算法在 Controller 節(jié)點(diǎn)間選舉

      元數(shù)據(jù)存儲(chǔ)

      存儲(chǔ)在 Zookeeper 中

      存儲(chǔ)在 Kafka 內(nèi)部的 `__cluster_metadata` 主題(Raft 日志)中

      元數(shù)據(jù)同步

      控制器從 ZK 讀取,再推送給 Brokers

      Brokers 從 Controller 仲裁拉取

      可擴(kuò)展性

      ZK 可能成為元數(shù)據(jù)操作的瓶頸

      擴(kuò)展性更好,專(zhuān)為超大規(guī)模集群設(shè)計(jì)

      運(yùn)維

      復(fù)雜,需維護(hù)兩套系統(tǒng)

      簡(jiǎn)單,只需維護(hù)一套系統(tǒng)

       

      結(jié)論:KRaft 模式是 Kafka 未來(lái)的方向,官方已經(jīng)宣布將在 Kafka 4.0 中完全移除對(duì) Zookeeper 的支持。對(duì)于新部署的集群,強(qiáng)烈推薦使用 KRaft 模式。

      posted @ 2025-09-11 18:44  hqq的進(jìn)階日記  閱讀(20)  評(píng)論(0)    收藏  舉報(bào)
      主站蜘蛛池模板: 国产自产av一区二区三区性色| 卢湾区| 亚洲一区二区三区人妻天堂| 阳东县| 国产日韩一区二区在线| 玩弄丰满少妇人妻视频| 国产一区二区波多野结衣| 亚洲av久久精品狠狠爱av| AV免费播放一区二区三区| 干老熟女干老穴干老女人| 2020国产成人精品视频| 中文字幕日韩精品亚洲一区| 精品欧美h无遮挡在线看中文 | 亚洲欧美偷国产日韩| 97亚洲熟妇自偷自拍另类图片 | 国产精品久久国产三级国不卡顿| 日韩成人午夜精品久久高潮 | 成人国产精品中文字幕| 亚洲一区二区精品动漫| 日本高清中文字幕免费一区二区| 成人网站免费观看永久视频下载| 1000部拍拍拍18勿入免费视频 | 亚洲成人av在线系列| 深夜福利资源在线观看| 日区中文字幕一区二区| 亚洲精品人成网线在播放VA| 激情综合色综合久久综合| 青草国产超碰人人添人人碱| 无码天堂亚洲国产av麻豆| 成人午夜电影福利免费| 精品精品久久宅男的天堂| 无码人妻黑人中文字幕| 无码国产精品一区二区av| 美女高潮黄又色高清视频免费| 久久精品国产福利亚洲av| 欧美丰满熟妇xxxx性| 亚洲成色精品一二三区| 精品少妇无码一区二区三批| 制服丝袜另类专区制服| 亚洲偷自拍另类一区二区| 日本污视频在线观看|