kafka管控平臺推薦使用 滴滴開源 的 Kafka運維管控平臺(戳我呀) 更符合國人的操作習慣 、更強大的管控能力 、更高效的問題定位能力 、更便捷的集群運維能力 、更專業的資源治理 、更友好的運維生態 、
大家好,我是石臻臻,這是 「kafka專欄」 連載中的第「10」篇文章…
首發: 一圖全解Kafka在zookeeper中的資料結構

/cluster
/cluster/id 持久資料節點
集群ID
當第一臺Broker啟動的時候, 發現/cluster/id不存在,那么它就會把自己的cluster.id配置寫入zk; 標記當前zk是屬于集群哪個集群; 后面其他的Broker啟動的時候會去獲取該資料, 如果發現資料跟自己的配置不一致; 則拋出例外,加入的不是同一個集群;
資料示例:{"version":"1","id":"0"}
/controller_epoch 持久資料節點
Controller選舉次數;
/Controller 臨時資料節點
當前Controller角色的BrokerId,資料示例:
{"version":1,"brokerid":0,"timestamp":"1624415590383"}
洗掉該節點立馬觸發重新選舉
/log_dir_event_notification
zk的資料中有一個節點
/log_dir_event_notification/,這是一個序列號持久節點
這個節點在kafka中承擔的作用是: 當某個Broker上的LogDir出現例外時(比如磁盤損壞,檔案讀寫失敗,等等例外): 向zk中謝增一個子節點/log_dir_event_notification/log_dir_event_序列號;Controller監聽到這個節點的變更之后,會向Brokers們發送LeaderAndIsrRequest請求; 然后做一些副本脫機的善后操作
詳情請看 【kafka原始碼】/log_dir_event_notification的LogDir脫機事件通知
/isr_change_notification/log_dir_event_{序列號}
當Isr有變更的時候,會寫入這個節點Controller監聽變更
/admin
/admin/delete_topics 待洗掉Topic
/admin/delete_topics/{topicName} 持久節點,待洗掉Topic
存在此節點表示 當前Topic需要被洗掉
/admin/reassign_partitions 持久資料節點
如果有此節點,表示當前正在進行資料遷移,里面的資料就是正在遷移的配置
示例資料:
/brokers
/brokers/seqid
/brokers/seqid: 全域序列號
里面沒有資料,主要是用了節點的dataVersion資訊來當全域序列號在kafka中的作用: 自動生成BrokerId
主要是用來自動生成brokerId;
一個集群如果特別大,配置brokerId的時候不能重復,一個個設定比較累; 可以讓Broker自動生成BrokerId
server.properties 配置
## 設定Brokerid能夠自動生成
broker.id.generation.enable=true
## 設定BrokerId<0 (如果>=0則以此配置為準)
broker.id=-1
## 自動生成配置的起始值
reserved.broker.max.id=20000
BrokerId計算方法
brokerId = {reserved.broker.max.id} +
/brokers/seqid.dataVersion每次想要獲取
/brokers/seqid的dataVersion值的時候都是用 set方法,set的時候會回傳version資料,并不是get;每次set這個節點資料,版本資訊就會自增;所以就實作了全域自增ID了;
/brokers/ids/{id} 臨時資料節點 : 在線BrokerID
在線的Broker都會在這里注冊一個節點; 下線自動洗掉
/brokers/topics/{topicName}持久資料節點
存盤 topic的磁區副本分配資訊
例如:{"version":1,"partitions":{"0":[0]}}/brokers/topics/{topicName}/{磁區號}/state 持久資料節點
存盤指定磁區的
leader和isr等資訊
例如:{"controller_epoch":203,"leader":0,"version":1,"leader_epoch":0,"isr":[0]}
你好,我是石臻臻,作業8年的互聯網老兵,豐富的開發和管理經驗, 現在任職于「 滴滴技術專家 」崗位,從事開源建設作業,公眾號講解 Java/中間件/大資料 等技術堆疊相關內容,歡迎關注石臻臻,進滴滴 「 高質量 」 「 滴滴開源技術答疑群 」 , 群內每周技術專家輪流值班答疑,加石臻臻微信交個朋友,交流交流技術分享分享生活
轉載請註明出處,本文鏈接:https://www.uj5u.com/qita/298324.html
標籤:其他
上一篇:【由淺入深討論HBase:自認全網最全最細】,你想了解的關于HBase知識,基本上都有,有需要的可以收藏當字典使用

