成人免费xxxxx在线视频软件_久久精品久久久_亚洲国产精品久久久_天天色天天色_亚洲人成一区_欧美一级欧美三级在线观看

一圖全解Kafka在Zookeeper中的數據結構

開發 架構 Kafka
在kafka_2.8.0之前,kafka還是需要依賴zookeeper運行,kafka中的很多數據都存儲在zk中, 例如 「Broker的注冊信息」、「Topic的信息」 、 「運維操作臨時信息 」、 「配置信息」等等其他信息。

[[421933]]

在kafka_2.8.0之前,kafka還是需要依賴zookeeper運行,kafka中的很多數據都存儲在zk中, 例如 「Broker的注冊信息」、「Topic的信息」 、 「運維操作臨時信息 」、 「配置信息」等等其他信息。

下面我們用用一張圖來窺探kafka在zookeeper中的全貌,建議收藏!!!

一圖知全貌

kafka在zookeeper中的數據結構

1/cluster

01- /cluster/id 持久數據節點

集群ID 當第一臺Broker啟動的時候, 發現/cluster/id不存在,那么它就會把自己的cluster.id配置寫入zk; 標記當前zk是屬于集群哪個集群; 后面其他的Broker啟動的時候會去獲取該數據, 如果發現數據跟自己的配置不一致; 則拋出異常,加入的不是同一個集群; 數據示例:{"version":"1","id":"0"}

2/controller_epoch 持久數據節點

Controller選舉次數;

3/Controller 臨時數據節點

當前Controller角色的BrokerId,數據示例:{"version":1,"brokerid":0,"timestamp":"1624415590383"}刪除該節點立馬觸發重新選舉

4/log_dir_event_notification

zk的數據中有一個節點/log_dir_event_notification/,這是一個序列號持久節點 這個節點在kafka中承擔的作用是: 當某個Broker上的LogDir出現異常時(比如磁盤損壞,文件讀寫失敗,等等異常): 向zk中新增一個子節點/log_dir_event_notification/log_dir_event_序列號 ;Controller監聽到這個節點的變更之后,會向Brokers們發送LeaderAndIsrRequest請求; 然后做一些副本脫機的善后操作

5/isr_change_notification/log_dir_event_{序列號}

當Isr有變更的時候,會寫入這個節點Controller監聽變更

6/admin

01 -/admin/delete_topics/{topicName} 持久節點,待刪除Topic

存在此節點表示 當前Topic需要被刪除

02 - /admin/reassign_partitions 持久數據節點

如果有此節點,表示當前正在進行數據遷移,里面的數據就是正在遷移的配置 示例數據: 

7/brokers

01 -/brokers/seqid

/brokers/seqid: 全局序列號里面沒有數據,主要是用了節點的dataVersion信息來當全局序列號

在kafka中的作用: 自動生成BrokerId主要是用來自動生成brokerId; 一個集群如果特別大,配置brokerId的時候不能重復,一個個設置比較累; 可以讓Broker自動生成BrokerId

server.properties 配置

  1. ## 設置Brokerid能夠自動生成 
  2. broker.id.generation.enable=true 
  3. ## 設置BrokerId<0 (如果>=0則以此配置為準) 
  4. broker.id=-1 
  5. ## 自動生成配置的起始值 
  6. reserved.broker.max.id=20000 

BrokerId計算方法

brokerId = {reserved.broker.max.id} +/brokers/seqid.dataVersion

每次想要獲取/brokers/seqid的dataVersion值的時候都是用 set方法,set的時候會返回version數據,并不是get;每次set這個節點數據,版本信息就會自增;所以就實現了全局自增ID了;

02 - /brokers/ids/{id} 臨時數據節點 : 在線BrokerID

在線的Broker都會在這里注冊一個節點; 下線自動刪除

03 - /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]}

本文轉載自微信公眾號「石臻臻的雜貨鋪」,可以通過以下二維碼關注。轉載本文請聯系石臻臻的雜貨鋪公眾號。

 

責任編輯:武曉燕 來源: 石臻臻的雜貨鋪
相關推薦

2010-09-25 13:07:50

DHCP協議結構

2010-07-13 13:59:04

ICMP協議

2021-04-19 09:08:19

無向圖數據結構

2010-01-28 09:47:38

WLAN交換機

2018-03-01 14:10:37

Kubernetes負載均衡容器

2023-04-13 08:14:53

數據結構算法存儲

2020-09-18 09:13:46

數據結構元素

2021-01-06 08:03:00

JavaScript數據結構

2011-07-04 10:32:37

JAVA

2019-10-29 08:59:16

Redis底層數據

2017-05-16 10:49:20

大數據數據流程圖數據結構

2019-09-03 10:40:23

數據結構HTML編程

2011-04-06 08:54:28

CactiRRD

2020-01-16 11:23:32

Zookeeper數據結構API

2023-04-14 08:07:20

數據結構算法搜索

2021-01-28 07:33:34

JavaScript鏈表數據

2023-02-28 09:10:28

設計模式解耦數據

2012-10-08 14:52:56

數據結構

2011-03-31 15:41:51

Cacti數據表結構

2009-09-23 17:36:26

Hibernate優點
點贊
收藏

51CTO技術棧公眾號

主站蜘蛛池模板: 一区二区三区观看视频 | 精品久久久999 | 国产成视频在线观看 | 特一级黄色毛片 | 91视频国产区| 99精品99| 日本精品一区二区在线观看 | 日韩国产精品一区二区三区 | 国产高潮好爽受不了了夜夜做 | 黄网站涩免费蜜桃网站 | 欧美一区二区大片 | 欧美黄色大片在线观看 | 国产精品一区二区三区久久久 | 精品三级在线观看 | 日韩在线不卡视频 | 欧美精品v国产精品v日韩精品 | 国产一区二区观看 | 欧美日本亚洲 | 欧美日韩亚洲二区 | 国精日本亚洲欧州国产中文久久 | 99免费在线观看视频 | 日韩一区中文字幕 | 欧美一级淫片免费视频黄 | 久久婷婷av| 免费看的黄网站 | 亚洲精品乱 | 久久精品成人 | 亚洲影视在线 | 青青草久久 | 九九热在线视频免费观看 | 天天操天天干天天曰 | com.色.www在线观看 | 欧洲一区二区视频 | 在线日韩视频 | 亚洲一区国产精品 | 欧美综合一区 | 日日碰狠狠躁久久躁96avv | 日韩在线 | 国产高清久久久 | 亚洲欧美日韩精品久久亚洲区 | 欧美成人精品一区 |