天天看點

kafka craft 嘗鮮

kafka craft 嘗鮮

1、Kafka-Kraft架構

kafka craft 嘗鮮

左圖為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:

kafka craft 嘗鮮

hadoop02:

kafka craft 嘗鮮

hadoop03:

kafka craft 嘗鮮

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      
kafka craft 嘗鮮

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      
kafka craft 嘗鮮
kafka craft 嘗鮮
kafka craft 嘗鮮

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:

kafka craft 嘗鮮

生産資料:

kafka craft 嘗鮮

消費資料:

繼續閱讀