
1、Kafka-Kraft架構
左圖為Kafka現有架構,中繼資料在zookeeper中,運作時動态選舉controller,由controller進行Kafka叢集管理。
右圖為kraft模式架構(實驗性),不再依賴zookeeper叢集,而是用三台controller節點代替zookeeper,中繼資料儲存在controller中,由controller直接進行Kafka叢集管理。
這樣做的好處有以下幾個:
- Kafka不再依賴外部架構,而是能夠獨立運作;
- controller管理叢集時,不再需要從zookeeper中先讀取資料,叢集性能上升;
- 由于不依賴zookeeper,叢集擴充時不再受到zookeeper讀寫能力限制;
- controller不再動态選舉,而是由配置檔案規定。這樣我們可以有針對性的加強controller節點的配置,而不是像以前一樣對随機controller節點的高負載束手無策。
2、Kafka-Kraft叢集
2.1 解壓一份kafka安裝包
[duo@hadoop01 software]$ tar -zxvf kafka_2.12-3.0.0.tgz -C /opt/data/
2.2 在hadoop01上修改config/kraft/server.properties配置檔案
hadoop01:
hadoop02:
hadoop03:
2.3 分發kafka
[duo@hadoop01 data]$ xsync kafka_2.12-3.0.0/
在hadoop02和hadoop03上需要對node.id相應改變,值需要和controller.quorum.voters對應。
- 在hadoop02和hadoop03上需要根據各自的主機名稱,修改相應的advertised.Listeners位址。
2.4 初始化叢集資料目錄
(1)首先生成存儲目錄唯一ID。
[duo@hadoop01 kafka]$ bin/kafka-storage.sh random-uuid
IbY24Ky1Tjq-rUY6AMayxw
(2)用該ID格式化kafka存儲目錄(三台節點)。
[duo@hadoop01 kafka]$ bin/kafka-storage.sh format -t IbY24Ky1Tjq-rUY6AMayxw -c /opt/data/kafka_2.12-3.0.0/config/kraft/server.properties
[duo@hadoop02 kafka]$ bin/kafka-storage.sh format -t IbY24Ky1Tjq-rUY6AMayxw -c /opt/data/kafka_2.12-3.0.0/config/kraft/server.properties
[duo@hadoop03 kafka]$ bin/kafka-storage.sh format -t IbY24Ky1Tjq-rUY6AMayxw -c /opt/data/kafka_2.12-3.0.0/config/kraft/server.properties
2.5 啟動kafka叢集
[duo@hadoop01 kafka]$ bin/kafka-server-start.sh -daemon config/kraft/server.properties
[duo@hadoop02 kafka]$ bin/kafka-server-start.sh -daemon config/kraft/server.properties
[duo@hadoop03 kafka]$ bin/kafka-server-start.sh -daemon config/kraft/server.properties
2.6 停止kafka叢集
[duo@hadoop01 kafka]$ bin/kafka-server-stop.sh
[duo@hadoop02 kafka]$ bin/kafka-server-stop.sh
[duo@hadoop03 kafka]$ bin/kafka-server-stop.sh
3、Kafka-Kraft叢集啟動停止腳本
1)在/home/duo/bin目錄下建立檔案kafka_craft.sh腳本檔案
[duo@hadoop01 bin]$ vim kafka_craft.sh
腳本如下:
2)添加執行權限
[duo@hadoop01 bin]$ chmod +x kafka_craft.sh
3)啟動叢集指令
[duo@hadoop01 ~]$ kafka_craft.sh start
4)停止叢集指令
[duo@hadoop01 ~]$ kafka_craft.sh stop
4、測試kafka-craft叢集
建立topic:
生産資料:
消費資料: