簡體   English   中英

Kafka Topic、Broker、ZooKeeper 架構概覽

[英]Kafka Topic, Broker, ZooKeeper architecture overview

我已經閱讀了很多關於 Kafka 架構的文章,但我在這方面仍然是全新的,在編碼方面,如果我正確理解的話,會有一些困惑。

據我了解,Kafka 服務器、代理和節點是同義詞。 Kafka 集群中可以有幾個代理。 有一個 Kafka 主題(T1),它由幾個分區(P1、P2 ..)組成。 這些分區可以跨代理(B1、B2 ..)進行復制。 B1 可以是 P1 的領導者,B2 是 P2 的領導者,依此類推。 我們是否說為代理或集群定義了主題 T1,如果我們將主題視為一組分區,我們可以說是“主題副本”嗎?

來自 Kafka 官方文檔:

bootstrap.servers:用於建立與 Kafka 集群的初始連接的主機/端口對列表。 客戶端將使用所有服務器,而不管此處指定哪些服務器用於引導——此列表僅影響用於發現完整服務器集的初始主機。 此列表的格式應為 host1:port1,host2:port2,.... 由於這些服務器僅用於初始連接以發現完整的集群成員資格(可能會動態更改),因此此列表不需要包含完整集服務器(不過,您可能需要多個服務器,以防服務器宕機)。

所以據我了解,定義 host1:port1,host2:port2 表示有兩個代理。

在這種情況下,ZooKeeper 在執行bin/kafka-console-producer.sh --broker-list host1:port1,host2:port2 --topic test是否會自動將消息分發給領導者? (我相信我在某處讀到過,生產者應該從 ZooKeeper 讀取代理 ID,但在這里不是沒有必要嗎?)它是否等於使用bin/kafka-console-producer.sh --zookeeper host1:z_port1,host2:z_port2 --topic test 我應該如何理解bin/kafka-configs.sh --zookeeper host1:z_port1,host2:z_port2 我們只有一個zookeeper實例?

我們是否說為代理或集群定義了主題 T1,如果我們將主題視為一組分區,我們可以說是“主題副本”嗎?

1) 集群。 2) 分區在多個代理之間單獨復制,通常比復制因子本身更多。 更恰當的術語是“同步副本(ISR)”

ZooKeeper 在執行時是否會自動將消息分發給領導者

Zookeeper 沒有,沒有。 您的客戶端與 Broker Controller 通信,然后接收集群中的所有 Broker,它還返回有關哪個 Broker 是哪個主題分區的領導者的元數據。 然后,客戶端單獨連接並為計算出的分區生成每個領導代理

是否等於出版

生產*,是的。

我們只有一個zookeeper實例?

一個 Zookeeper集群可以通過稱為chroot的功能管理多個 Kafka 集群, chroot是 Zookeeper znodes 中包含有關托管服務信息的根目錄。

此外, kafka-topics命令現在可以使用--bootstrap-server ,而不是--zookeeper

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM