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

Kafka題集 - kafka中Zookeeper的作用是什么?

這篇具有很好參考價值的文章主要介紹了Kafka題集 - kafka中Zookeeper的作用是什么?。希望對大家有所幫助。如果存在錯誤或未考慮完全的地方,請大家不吝賜教,您也可以點擊"舉報違法"按鈕提交疑問。

01. 如何查看kafka 元數(shù)據(jù)存儲目錄?

以 kafka 偽集群來看下 Zookeeper 中存儲的 Kafka 信息。在配置 kafka 偽集群時,在kafka 配置文件 server.properties 中配置了連接 zookeeper 集群的地址:

zookeeper.connect=localhost:2182,localhost:2183,localhost:2184

Kafka的元數(shù)據(jù)存儲在Zookeeper中,而不是本地文件系統(tǒng)中。因此,要查看Kafka的元數(shù)據(jù)存儲目錄,您需要連接到Zookeeper并查看其中的數(shù)據(jù)。

① 方式1:打開Zookeeper客戶端并連接到Zookeeper服務(wù)器,進(jìn)入Zookeeper 安裝目錄的bin文件夾,執(zhí)行Zookeeper客戶端命令

[root@localhost bin]# ./zkCli.sh -server 10.60.215.238:2184
Connecting to 10.60.215.238:2184
2023-05-30 17:33:20,391 [myid:] - INFO  [main:Environment@100] - Client environment:zookeeper.version=3.4.14-4c25d480e66aadd371de8bd2fd8da255ac140bcf, built on 03/06/2019 16:18 GMT
2023-05-30 17:33:20,394 [myid:] - INFO  [main:Environment@100] - Client environment:host.name=localhost
2023-05-30 17:33:20,394 [myid:] - INFO  [main:Environment@100] - Client environment:java.version=11.0.19
2023-05-30 17:33:20,395 [myid:] - INFO  [main:Environment@100] - Client environment:java.vendor=Oracle Corporation
2023-05-30 17:33:20,395 [myid:] - INFO  [main:Environment@100] - Client environment:java.home=/opt/soft/java/jdk-11.0.19
2023-05-30 17:33:20,395 [myid:] - INFO  [main:Environment@100] - Client environment:java.class.path=/opt/soft/zookeeper/zookeeper-03/bin/../zookeeper-server/target/classes:/opt/soft/zookeeper/zookeeper-03/bin/../build/classes:/opt/soft/zookeeper/zookeeper-03/bin/../zookeeper-server/target/lib/*.jar:/opt/soft/zookeeper/zookeeper-03/bin/../build/lib/*.jar:/opt/soft/zookeeper/zookeeper-03/bin/../lib/slf4j-log4j12-1.7.25.jar:/opt/soft/zookeeper/zookeeper-03/bin/../lib/slf4j-api-1.7.25.jar:/opt/soft/zookeeper/zookeeper-03/bin/../lib/netty-3.10.6.Final.jar:/opt/soft/zookeeper/zookeeper-03/bin/../lib/log4j-1.2.17.jar:/opt/soft/zookeeper/zookeeper-03/bin/../lib/jline-0.9.94.jar:/opt/soft/zookeeper/zookeeper-03/bin/../lib/audience-annotations-0.5.0.jar:/opt/soft/zookeeper/zookeeper-03/bin/../zookeeper-3.4.14.jar:/opt/soft/zookeeper/zookeeper-03/bin/../zookeeper-server/src/main/resources/lib/*.jar:/opt/soft/zookeeper/zookeeper-03/bin/../conf:
2023-05-30 17:33:20,395 [myid:] - INFO  [main:Environment@100] - Client environment:java.library.path=/usr/java/packages/lib:/usr/lib64:/lib64:/lib:/usr/lib
2023-05-30 17:33:20,395 [myid:] - INFO  [main:Environment@100] - Client environment:java.io.tmpdir=/tmp
2023-05-30 17:33:20,396 [myid:] - INFO  [main:Environment@100] - Client environment:java.compiler=<NA>
2023-05-30 17:33:20,396 [myid:] - INFO  [main:Environment@100] - Client environment:os.name=Linux
2023-05-30 17:33:20,396 [myid:] - INFO  [main:Environment@100] - Client environment:os.arch=amd64
2023-05-30 17:33:20,396 [myid:] - INFO  [main:Environment@100] - Client environment:os.version=4.18.0-193.el8.x86_64
2023-05-30 17:33:20,396 [myid:] - INFO  [main:Environment@100] - Client environment:user.name=root
2023-05-30 17:33:20,396 [myid:] - INFO  [main:Environment@100] - Client environment:user.home=/root
2023-05-30 17:33:20,396 [myid:] - INFO  [main:Environment@100] - Client environment:user.dir=/opt/soft/zookeeper/zookeeper-03/bin
2023-05-30 17:33:20,397 [myid:] - INFO  [main:ZooKeeper@442] - Initiating client connection, connectString=10.60.215.238:2184 sessionTimeout=30000 watcher=org.apache.zookeeper.ZooKeeperMain$MyWatcher@2e3fc542
Welcome to ZooKeeper!
JLine support is enabled
[zk: 10.60.215.238:2184(CONNECTING) 0] 2023-05-30 17:33:20,645 [myid:] - INFO  [main-SendThread(10.60.215.238:2184):ClientCnxn$SendThread@1025] - Opening socket connection to server 10.60.215.238/10.60.215.238:2184. Will not attempt to authenticate using SASL (unknown error)
2023-05-30 17:33:20,653 [myid:] - INFO  [main-SendThread(10.60.215.238:2184):ClientCnxn$SendThread@879] - Socket connection established to 10.60.215.238/10.60.215.238:2184, initiating session
2023-05-30 17:33:20,664 [myid:] - INFO  [main-SendThread(10.60.215.238:2184):ClientCnxn$SendThread@1299] - Session establishment complete on server 10.60.215.238/10.60.215.238:2184, sessionid = 0x2004e1182c20000, negotiated timeout = 30000

WATCHER::

WatchedEvent state:SyncConnected type:None path:null
ls /
[cluster, controller_epoch, controller, brokers, zookeeper, admin, isr_change_notification, consumers, log_dir_event_notification, latest_producer_id_block, config]
[zk: 10.60.215.238:2184(CONNECTED) 1]

② 方式2:進(jìn)入 Kafka 安裝目錄的 bin/ 文件夾,執(zhí)行以下命令連接到 ZooKeeper:

[root@localhost bin]# ./zookeeper-shell.sh 10.60.215.238:2184
Connecting to 10.60.215.238:2184
Welcome to ZooKeeper!
JLine support is disabled

WATCHER::

WatchedEvent state:SyncConnected type:None path:null
ls /
[cluster, controller_epoch, controller, brokers, zookeeper, admin, isr_change_notification, consumers, log_dir_event_notification, latest_producer_id_block, config]

③ 查看 zookeeper 中存儲的 kafka 元數(shù)據(jù)信息:

ls /
[cluster, controller_epoch, controller, brokers, zookeeper, admin, isr_change_notification, consumers, log_dir_event_notification, latest_producer_id_block, config]

Kafka的元數(shù)據(jù)存儲在Zookeeper中,而不是本地文件系統(tǒng)中。Zookeeper是一個分布式的協(xié)調(diào)服務(wù),用于存儲Kafka集群的元數(shù)據(jù),包括主題、分區(qū)、消費者組等信息。Kafka通過Zookeeper來管理集群中的Broker、Topic和Consumer等信息,以及進(jìn)行Leader選舉、Partition分配等操作。因此,Kafka的元數(shù)據(jù)存儲目錄實際上是Zookeeper的數(shù)據(jù)節(jié)點。在Kafka的配置文件中,可以通過配置zookeeper.connect參數(shù)來指定Zookeeper的連接地址。

在Zookeeper中,Kafka的元數(shù)據(jù)存儲在/brokers、/controller和/config三個目錄下。其中,/brokers目錄存儲了Kafka集群中所有Broker的信息,包括它們的ID、主機名、端口號等;/controller目錄存儲了當(dāng)前的Controller Broker的ID,Controller Broker是Kafka集群中負(fù)責(zé)管理分區(qū)副本分配和故障轉(zhuǎn)移的Broker;/config目錄存儲了Kafka集群的配置信息。

這些元數(shù)據(jù)信息都是由Kafka控制器節(jié)點維護(hù)的,而不是由Broker節(jié)點維護(hù)的。因此,如果控制器節(jié)點宕機或者出現(xiàn)故障,Kafka集群的元數(shù)據(jù)信息可能會受到影響。

需要注意的是,Kafka的元數(shù)據(jù)存儲在Zookeeper中是為了支持集群的動態(tài)擴容和縮容。因此,如果你需要修改Kafka的配置信息,應(yīng)該通過修改Zookeeper中的配置來實現(xiàn)。

02. kafka 元數(shù)據(jù)存儲目錄 /controller

/controller目錄: 這個目錄存儲了當(dāng)前Kafka集群的控制器節(jié)點的ID。每個Kafka集群只有一個控制器節(jié)點,該節(jié)點負(fù)責(zé)管理集群的元數(shù)據(jù)信息和分區(qū)分配。

get /controller
{"version":1,"brokerid":0,"timestamp":"1685072164216"}
cZxid = 0x200000116
ctime = Fri May 26 11:36:04 CST 2023
mZxid = 0x200000116
mtime = Fri May 26 11:36:04 CST 2023
pZxid = 0x200000116
cversion = 0
dataVersion = 0
aclVersion = 0
ephemeralOwner = 0x4e11419a000e
dataLength = 54
numChildren = 0

可以看到該 kafka 集群的控制器節(jié)點的 brokerid 為0

03. kafka 元數(shù)據(jù)存儲目錄 /brokers

① /brokers目錄: 存儲Kafka集群中所有broker的信息,每個節(jié)點都有一個唯一的ID和一個地址列表,包括它們的ID、主機名、端口號等。

ls /brokers
[ids, topics, seqid]

② /brokers/ids: 這個目錄存儲了Kafka集群中所有Broker節(jié)點的ID。每個Broker節(jié)點都有一個唯一的ID,該ID由Kafka控制器分配。

ls /brokers/ids
[0, 1, 2]

獲取kafka節(jié)點詳情信息:

get /brokers/ids/0
{"listener_security_protocol_map":{"PLAINTEXT":"PLAINTEXT"},"endpoints":["PLAINTEXT://10.60.215.238:9092"],"jmx_port":-1,"host":"10.60.215.238","timestamp":"1685072066057","port":9092,"version":4}
cZxid = 0x2000000ef
ctime = Fri May 26 11:34:26 CST 2023
mZxid = 0x2000000ef
mtime = Fri May 26 11:34:26 CST 2023
pZxid = 0x2000000ef
cversion = 0
dataVersion = 1
aclVersion = 0
ephemeralOwner = 0x4e11419a000e
dataLength = 196
numChildren = 0

根據(jù)查詢結(jié)果,該 broker 的 ID 為 0,監(jiān)聽地址為 PLAINTEXT://10.60.215.238:9092

③ /brokers/topics: 這個目錄存儲了Kafka集群中所有Topic的元數(shù)據(jù)信息,包括每個Topic的名稱、分區(qū)數(shù)、副本數(shù)等。

ls  /brokers/topics
[test, __consumer_offsets]
ls /brokers/topics/test
[partitions]
ls /brokers/topics/test/partitions
[0, 1, 2]
ls /brokers/topics/test/partitions/0
[state]
get /brokers/topics/test/partitions/0/state
{"controller_epoch":7,"leader":2,"version":1,"leader_epoch":3,"isr":[0,2]}
cZxid = 0x2000000da
ctime = Fri May 26 11:32:19 CST 2023
mZxid = 0x20000012f
mtime = Fri May 26 11:41:09 CST 2023
pZxid = 0x2000000da
cversion = 0
dataVersion = 5
aclVersion = 0
ephemeralOwner = 0x0
dataLength = 74
numChildren = 0
get /brokers/topics/test/partitions/1/state
{"controller_epoch":5,"leader":0,"version":1,"leader_epoch":2,"isr":[0,1]}
cZxid = 0x2000000d9
ctime = Fri May 26 11:32:19 CST 2023
mZxid = 0x20000010e
mtime = Fri May 26 11:35:58 CST 2023
pZxid = 0x2000000d9
cversion = 0
dataVersion = 4
aclVersion = 0
ephemeralOwner = 0x0
dataLength = 74
numChildren = 0
get /brokers/topics/test/partitions/2/state
{"controller_epoch":6,"leader":1,"version":1,"leader_epoch":2,"isr":[1,2]}
cZxid = 0x2000000d8
ctime = Fri May 26 11:32:19 CST 2023
mZxid = 0x20000012a
mtime = Fri May 26 11:36:10 CST 2023
pZxid = 0x2000000d8
cversion = 0
dataVersion = 4
aclVersion = 0
ephemeralOwner = 0x0
dataLength = 74
numChildren = 0
  • controller_epoch: 控制器的代數(shù),用于檢測控制器故障轉(zhuǎn)移。
  • leader: 當(dāng)前領(lǐng)導(dǎo)者的ID。在這個響應(yīng)中,領(lǐng)導(dǎo)者的ID是0,表示該分區(qū)當(dāng)前由第0個broker擔(dān)任領(lǐng)導(dǎo)者。
  • version: 分區(qū)狀態(tài)的版本號。
  • leader_epoch: 領(lǐng)導(dǎo)者的代數(shù),用于檢測領(lǐng)導(dǎo)者故障轉(zhuǎn)移。
  • isr: 可用于服務(wù)讀取請求的副本集合,即“in-sync replicas”。在這個響應(yīng)中,ISR包含兩個broker的ID:0和1,表示這兩個broker上的副本與領(lǐng)導(dǎo)者的副本保持同步。

04. kafka 元數(shù)據(jù)存儲目錄 /config

/config目錄: 存儲Kafka集群的配置信息,包括broker的默認(rèn)配置、topic的默認(rèn)配置等。

ls /config
[changes, clients, brokers, topics, users]

05. kafka 元數(shù)據(jù)存儲目錄 /admin

Kafka元數(shù)據(jù)存儲目錄/admin主要用于存儲管理員接口操作的相關(guān)信息,包括以下內(nèi)容:

① Topic刪除事件:當(dāng)管理員刪除一個Topic時,相關(guān)的元數(shù)據(jù)信息將被存儲在/admin/delete_topics目錄下。

② 分區(qū)遷移事件:當(dāng)管理員執(zhí)行分區(qū)遷移操作時,相關(guān)的元數(shù)據(jù)信息將被存儲在/admin/reassign_partitions目錄下。

③ 優(yōu)先副本選舉:當(dāng)管理員執(zhí)行優(yōu)先副本選舉操作時,相關(guān)的元數(shù)據(jù)信息將被存儲在/admin/preferred_replica_election目錄下。

④ 信息:一般為臨時節(jié)點,用于存儲一些臨時的元數(shù)據(jù)信息,例如正在進(jìn)行的分區(qū)重分配操作的狀態(tài)信息等。

這些元數(shù)據(jù)信息對于Kafka集群的管理和維護(hù)非常重要,管理員可以通過訪問/admin目錄下的子目錄來查看和管理這些信息。

/admin/delete_topics: 這個目錄存儲了待刪除的Topic列表。當(dāng)Kafka控制器接收到刪除Topic的請求時,它會將該Topic的名稱添加到這個目錄中,然后通知所有Broker節(jié)點刪除該Topic。

ls /admin/delete_topics
[]

06. kafka 元數(shù)據(jù)存儲目錄 /consumers

存放消費者相關(guān)信息 (一般為空):0.9版本之前用于存Offset信息,0.9版本之后Offset信息存在在kafka 主題中

ls /consumers
[]

07. Kafka中Zookeeper起什么作用,可以不用Zookeeper么?

在Kafka中,Zookeeper扮演著多個重要角色:

① 配置管理:Kafka集群的配置信息、主題和分區(qū)的元數(shù)據(jù)都存儲在Zookeeper中。

② Broker注冊:Kafka Broker啟動時會向Zookeeper注冊自己的信息,包括Broker的ID、主機名、端口等。

③ Leader選舉:Kafka的分區(qū)副本機制中,每個分區(qū)都有一個Leader負(fù)責(zé)讀寫請求的處理。當(dāng)Leader宕機時,Zookeeper會協(xié)助進(jìn)行新的Leader選舉。

④ 消費者組管理:Kafka的消費者組機制中,Zookeeper會記錄消費者組的信息,包括消費者組的成員、消費進(jìn)度等。

因此,Zookeeper在Kafka中扮演著非常重要的角色,如果不使用Zookeeper,Kafka將無法正常工作。

08. Kafka 和 ZooKeeper 之間的關(guān)系是什么?

Kafka 使用 ZooKeeper 來管理和協(xié)調(diào) Kafka 集群中的各個節(jié)點。ZooKeeper 負(fù)責(zé)維護(hù) Kafka 集群的元數(shù)據(jù),例如主題、分區(qū)、消費者組等信息,并協(xié)調(diào) Kafka 集群中的各個節(jié)點之間的通信。

09. Kafka 中的分區(qū)是如何管理的?

Kafka 中的分區(qū)是由 ZooKeeper 來管理的。ZooKeeper 維護(hù)了每個分區(qū)的元數(shù)據(jù),包括分區(qū)的 ID、副本的位置、領(lǐng)導(dǎo)者等信息。Kafka 的生產(chǎn)者和消費者通過 ZooKeeper 來獲取分區(qū)的元數(shù)據(jù),并與分區(qū)的領(lǐng)導(dǎo)者進(jìn)行通信。

10. kafka的工作需要Zookeeper的配合,它是如何配合的?

Kafka和Zookeeper是兩個獨立的開源項目,但是在Kafka的工作中,Zookeeper是必不可少的。下面是Kafka和Zookeeper之間的配合工作:

① Kafka使用Zookeeper來存儲集群的元數(shù)據(jù),包括主題(topic)、分區(qū)(partition)和消費者組(consumer group)等信息。這些元數(shù)據(jù)的存儲和管理是由Zookeeper來完成的。

② 當(dāng)Kafka集群中的Broker啟動或關(guān)閉時,它們會向Zookeeper注冊或注銷自己的信息。這樣,Kafka集群中的所有Broker都可以通過Zookeeper了解到其他Broker的狀態(tài)。

③ 當(dāng)Kafka集群中的某個分區(qū)的Leader節(jié)點發(fā)生變化時,Zookeeper會通知所有的Broker,以便它們可以更新自己的元數(shù)據(jù)信息。

④ 當(dāng)消費者組中的消費者啟動或關(guān)閉時,它們也會向Zookeeper注冊或注銷自己的信息。這樣,Kafka集群中的所有Broker都可以通過Zookeeper了解到消費者組中的消費者的狀態(tài)。

⑤ 當(dāng)消費者組中的消費者需要消費某個分區(qū)的消息時,它們會向Zookeeper請求該分區(qū)的元數(shù)據(jù)信息。Zookeeper會返回該分區(qū)的Leader節(jié)點的信息,以便消費者可以向該節(jié)點發(fā)送拉取請求。

總之,Kafka和Zookeeper之間的配合工作是非常緊密的,Zookeeper在Kafka集群中扮演著非常重要的角色,它負(fù)責(zé)存儲和管理集群的元數(shù)據(jù)信息,以及協(xié)調(diào)Kafka集群中各個節(jié)點之間的通信。

11. Kafka是怎么跟Zookeeper進(jìn)行交互的?

Kafka是一個分布式的消息系統(tǒng),而Zookeeper是一個分布式的協(xié)調(diào)服務(wù)。在Kafka中,Zookeeper主要用于管理Kafka集群的元數(shù)據(jù),包括Kafka的broker信息、topic和partition的信息等。Kafka通過與Zookeeper進(jìn)行交互來實現(xiàn)以下功能:

① Broker注冊:當(dāng)一個Kafka broker啟動時,它會向Zookeeper注冊自己的信息,包括broker的ID、主機名和端口號等。

② Topic和Partition的管理:Kafka的topic和partition信息存儲在Zookeeper的節(jié)點上,Kafka通過與Zookeeper進(jìn)行交互來創(chuàng)建、刪除、修改topic和partition的信息。

③ Leader選舉:Kafka的每個partition都有一個leader broker,當(dāng)leader broker宕機時,Kafka需要從剩余的broker中選舉一個新的leader。這個過程需要通過與Zookeeper進(jìn)行交互來實現(xiàn)。

④ Consumer Group的管理:Kafka的consumer group信息也存儲在Zookeeper的節(jié)點上,Kafka通過與Zookeeper進(jìn)行交互來創(chuàng)建、刪除、修改consumer group的信息。

總之,Kafka通過與Zookeeper進(jìn)行交互來實現(xiàn)集群的元數(shù)據(jù)管理和協(xié)調(diào),保證了Kafka集群的高可用性和可靠性

12. kafka 依賴于ZooKeeper存在什么問題?

Kafka 依賴于 ZooKeeper 主要是為了實現(xiàn)分布式協(xié)調(diào)和管理。具體來說,ZooKeeper 負(fù)責(zé)管理 Kafka 集群的元數(shù)據(jù),如 broker 的狀態(tài)、topic 和 partition 的信息等。同時,ZooKeeper 還可以用于實現(xiàn) Kafka 的 leader 選舉和消費者組的協(xié)調(diào)等功能。然而,Kafka 依賴于 ZooKeeper 也存在一些問題:

① 單點故障:ZooKeeper 是一個集中式的服務(wù),如果 ZooKeeper 發(fā)生故障,整個 Kafka 集群都將受到影響。

② 性能瓶頸:ZooKeeper 的性能瓶頸可能會影響 Kafka 的性能。例如,ZooKeeper 的寫入操作可能會成為瓶頸,從而影響 Kafka 的生產(chǎn)和消費速度。

③ 部署和維護(hù)成本高:ZooKeeper 的部署和維護(hù)需要一定的成本,需要專門的人員進(jìn)行管理和維護(hù)。

13. kafka新版本為什么不再依賴于Zookeeper?

Kafka2.8.0版本于(2021年4月19日)發(fā)布,該版本提供了KIP-500的早期訪問版本,它允許在沒有zookeeper的情況下運行Kafka集群,而取代zookeeper的是Kafka內(nèi)部實現(xiàn)的KRaft協(xié)議。這種新體系結(jié)構(gòu)使每個集群支持更多分區(qū)、更簡單的操作和更嚴(yán)格的安全性。需要特別強調(diào)的一點是;當(dāng)前版本還不完善,不能用于生產(chǎn)環(huán)境。

Kafka 2.8版本引入了KIP-500,這是一個重大的變化,它將Kafka的元數(shù)據(jù)存儲從Zookeeper遷移到了內(nèi)部的Kafka集群中。在此之前,Kafka使用Zookeeper來存儲集群的元數(shù)據(jù),包括主題、分區(qū)、消費者組等信息。但是,隨著Kafka集群規(guī)模的增大,Zookeeper的性能和可靠性成為了瓶頸,因此Kafka社區(qū)決定將元數(shù)據(jù)存儲遷移到Kafka集群中。

這樣做的好處是,Kafka集群可以更好地控制自己的元數(shù)據(jù),而不需要依賴外部的Zookeeper。這樣可以提高Kafka的可靠性和性能,并且簡化了Kafka的部署和維護(hù)。

14. Kafka 如何維護(hù)集群的成員關(guān)系?

Kafka題集 - kafka中Zookeeper的作用是什么?

① Kafka使用ZooKeeper來維護(hù)集群的成員信息,確保集群中的每個broker都能夠知道其他broker的存在。每個broker都有一個唯一的標(biāo)識符,可以在配置文件中指定,也可以自動生成。當(dāng)broker啟動時,它會創(chuàng)建一個臨時節(jié)點,并將自己的ID注冊到ZooKeeper中。這個臨時節(jié)點的路徑是 /brokers/ids/<broker_id>,其中<broker_id>是broker的唯一標(biāo)識符。

除了broker之外,控制器和其他一些生態(tài)系統(tǒng)工具也會訂閱ZooKeeper的 /brokers/ids 路徑,以便在有broker加入或退出集群時收到通知。當(dāng)有新的broker加入集群時,它會創(chuàng)建一個新的臨時節(jié)點,并將自己的ID注冊到ZooKeeper中。當(dāng)有broker退出集群時,它的臨時節(jié)點會被刪除,其他broker會收到通知。

通過ZooKeeper,Kafka能夠動態(tài)地管理集群成員,確保集群中的每個broker都能夠知道其他broker的存在,并及時地響應(yīng)加入或退出集群的事件。這種機制使得Kafka集群更加健壯和可靠。

② 如果你試圖啟動另一個具有相同ID的broker,則會收到一個錯誤——新broker會嘗試進(jìn)行注冊,但不會成功,因為ZooKeeper中已經(jīng)有一個相同的節(jié)點。

③ 當(dāng)broker與ZooKeeper斷開連接(通常會在關(guān)閉broker時發(fā)生,但在發(fā)生網(wǎng)絡(luò)分區(qū)或長時間垃圾回收停頓時也會發(fā)生)時,它在啟動時創(chuàng)建的臨時節(jié)點會自動從ZooKeeper上移除。監(jiān)聽broker節(jié)點路徑的Kafka組件會被告知這個broker已被移除。

broker對應(yīng)的ZooKeeper節(jié)點會在broker被關(guān)閉之后消失,但它的ID會繼續(xù)存在于其他數(shù)據(jù)結(jié)構(gòu)中。例如,每個主題的副本集中就可能包含這個ID。在完全關(guān)閉一個broker后,如果使用相同的ID啟動另一個全新的broker,則它會立即加入集群,并獲得與之前相同的分區(qū)和主題。這是因為Kafka使用ZooKeeper來管理集群的元數(shù)據(jù),包括分區(qū)和副本的分配情況。當(dāng)一個新的broker使用相同的ID啟動時,它會向ZooKeeper注冊自己,并獲取之前分配給該ID的分區(qū)和副本信息。

這種機制確保了在broker關(guān)閉和重新啟動的情況下,集群的分區(qū)和副本分配保持一致,從而實現(xiàn)高可用性和容錯性。但需要注意的是,如果一個broker被關(guān)閉后,一段時間內(nèi)沒有使用相同的ID啟動新的broker,那么其他broker可能會將該ID標(biāo)記為失效,并重新分配其上的分區(qū)和副本。文章來源地址http://www.zghlxwxcb.cn/news/detail-486051.html

到了這里,關(guān)于Kafka題集 - kafka中Zookeeper的作用是什么?的文章就介紹完了。如果您還想了解更多內(nèi)容,請在右上角搜索TOY模板網(wǎng)以前的文章或繼續(xù)瀏覽下面的相關(guān)文章,希望大家以后多多支持TOY模板網(wǎng)!

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

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

相關(guān)文章

  • ZooKeeper 用的好好地,Kafka 為什么要拋棄 ZooKeeper?

    ZooKeeper 用的好好地,Kafka 為什么要拋棄 ZooKeeper?

    ZooKeeper 是一個開源的分布式協(xié)調(diào)服務(wù)框架,你也可以認(rèn)為它是一個可以保證一致性的分布式(小量)存儲系統(tǒng)。特別適合存儲一些公共的配置信息、集群的一些元數(shù)據(jù)等等。 它有持久節(jié)點和臨時節(jié)點,而臨時節(jié)點這個玩意再配合 Watcher 機制就很有用。 當(dāng)創(chuàng)建臨時節(jié)點的客戶端

    2024年02月06日
    瀏覽(13)
  • 05、Kafka ------ 各個功能的作用解釋(主題和分區(qū) 詳解,用命令行和圖形界面創(chuàng)建主題和查看主題)

    05、Kafka ------ 各個功能的作用解釋(主題和分區(qū) 詳解,用命令行和圖形界面創(chuàng)建主題和查看主題)

    Kafka 主題雖然也叫 topic,但它和 Pub-Sub 消息模型中 topic 主題及 AMQP 的 topic 都不同(AMQP 的 topic 只是 Exchange 的類型)。 Kafka 的主題只是盛裝消息的邏輯容器(注意是邏輯容器),主題之下會分為若干個分區(qū),分區(qū)才是盛裝消息的物理容器。 ▲ 消息組織方式實際上是三級結(jié)構(gòu)

    2024年02月03日
    瀏覽(31)
  • 如何查看Kafka的Topic消費情況

    如何查看Kafka的Topic消費情況

    進(jìn)入kafka安裝目錄,然后執(zhí)行以下命令 ?2.10為Scala版本,0.10.0.2.5.3.0為kafka版本 ?

    2024年02月10日
    瀏覽(26)
  • 什么是kafka,如何學(xué)習(xí)kafka,整合SpringBoot

    什么是kafka,如何學(xué)習(xí)kafka,整合SpringBoot

    目錄 一、什么是Kafka,如何學(xué)習(xí) 二、如何整合SpringBoot 三、Kafka的優(yōu)勢 ? Kafka是一種分布式的消息隊列系統(tǒng),它可以用于處理大量實時數(shù)據(jù)流 。學(xué)習(xí)Kafka需要掌握如何安裝、配置和運行Kafka集群,以及如何使用Kafka API編寫生產(chǎn)者和消費者代碼來讀寫數(shù)據(jù)。此外,還需要了解Ka

    2024年02月10日
    瀏覽(26)
  • Kafka是什么,以及如何使用SpringBoot對接Kafka

    Kafka是什么,以及如何使用SpringBoot對接Kafka

    上手第一關(guān),手把手教你安裝kafka與可視化工具kafka-eagle 架構(gòu)必備能力——kafka的選型對比及應(yīng)用場景 Kafka存取原理與實現(xiàn)分析,打破面試難關(guān) 防止消息丟失與消息重復(fù)——Kafka可靠性分析及優(yōu)化實踐 繼上一次教大家手把手安裝kafka后,今天我們直接來到入門實操教程,也就是

    2024年02月08日
    瀏覽(19)
  • 如何查看kafka的topic的消費者組有沒有積壓

    Kafka 自帶的命令行工具 kafka-consumer-groups.sh 來查看消費者組的消費情況,包括是否有積壓。 具體步驟如下: 打開命令行終端,進(jìn)入 Kafka 安裝目錄下的 bin 文件夾。 輸入以下命令,查看消費者組的消費情況: ./kafka-consumer-groups.sh --bootstrap-server --describe --group kafka-consumer-groups.

    2023年04月18日
    瀏覽(73)
  • Kafka如何保證消息的消費順序【全局有序、局部有序】、Kafka如何保證消息不被重復(fù)消費、Kafka為什么這么快?【重點】、Kafka常見問題匯總【史上最全】

    Kafka如何保證消息的消費順序【全局有序、局部有序】、Kafka如何保證消息不被重復(fù)消費、Kafka為什么這么快?【重點】、Kafka常見問題匯總【史上最全】

    目錄 Kafka消息生產(chǎn) 一個Topic對應(yīng)一個Partition 一個Topic對應(yīng)多個Partition Kafka消息的順序性保證(Producer、Consumer) 全局有序 局部有序? max.in.flight.requests.per.connection參數(shù)詳解 Kafka的多副本機制 Kafka的follower從leader同步數(shù)據(jù)的流程 Kafka的follower為什么不能用于消息消費 Kafka的多分區(qū)

    2024年04月11日
    瀏覽(24)
  • jdk+zookeeper+kafka 搭建kafka集群

    jdk+zookeeper+kafka 搭建kafka集群

    環(huán)境準(zhǔn)備 環(huán)境資源包: jdk-8u341-linux-x64.tar.gz kafka_2.12-2.2.0.tgz zookeeper-3.4.14.tar.gz server-id ip 狀態(tài) server1 10.206.120.10 leader server2 10.206.120.2 follower server3 10.206.120.3 follower 一、安裝jdk 因為kafka需要Java環(huán)境,所以優(yōu)先配置jdk環(huán)境,若已經(jīng)配置了java環(huán)境,此步驟可以忽略 二、zookeeper集群

    2024年02月04日
    瀏覽(34)
  • linux部署單機kafka(使用kafka自帶zookeeper)

    本文使用kafka單節(jié)點安裝及配置,并使用kafka自帶的zookeeper。一般kafka需要起三個kafka構(gòu)成集群,可以連單獨的zookeeper,本文不涉及。 根據(jù)需要下載對應(yīng)版本的安裝包,下載地址: https://archive.apache.org/dist/kafka/ 上傳安裝包并解壓重命名(路徑自定義): 如:上傳到 /opt 路徑下

    2024年02月16日
    瀏覽(15)
  • 【Kafka】Zookeeper和Kafka集群的安裝和配置

    一、集群環(huán)境說明 1. 虛擬機:192.168.223.101/103/105 2. 系統(tǒng)版本:CentOS 7.9 3. JDK版本:11.0.18.0.1 4. Zookeeper版本:3.7.1 5. Kafka版本:2.13-2.8.2 備注:無論是ZK,還是Kafka的安裝,都需要用到JDK,上面給出的ZK和Kafka版本,都已經(jīng)支持JDK11(JDK 11 Supported)。這三者之間的兼容關(guān)系,感興趣

    2024年02月12日
    瀏覽(23)

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

支付寶掃一掃打賞

博客贊助

微信掃一掃打賞

請作者喝杯咖啡吧~博客贊助

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

二維碼1

領(lǐng)取紅包

二維碼2

領(lǐng)紅包