1. 程式人生 > >快速搭建 Zookeeper+Kafka 高可用叢集環境

快速搭建 Zookeeper+Kafka 高可用叢集環境

1、概念和方案

本文只介紹快速的搭建方案,不囉嗦哈。搭建方案圖,如下:


Zookeeper獨立3臺叢集(根據專案情況擴充套件),一臺為leader,其他為follower。

Kafka為多節點多broker的叢集方案(根據專案情況擴充套件),不使用kafka自帶的zookeeper。

2、部署準備

由於ZK、Kakfa執行需要依賴JVM環境,需要先安裝JDK(網上很多,不再描述)

另外,以上中介軟體統一安裝/home目錄,下面方案介紹中預設都是此目錄。

3、叢集部署

3.1 Zookeeper

1、解壓軟體包:

tar -xzvf  zookeeper-3.4.11.tar.gz
2、進入配置檔案目錄,cd zookeeper-3.4.11/conf,新建zoo.cfg。每臺叢集節點使用相同的配置。

3、建立zookeeper-data資料夾(與zk安裝目錄同級),並在此資料夾下新建檔案myid(linux命令:touchmyid),內容為1。根據zoo.cfg中server.x=ip:port1:port2的x值,設定不同叢集節點myidde值。如:192.168.0.71節點zookeeper的myid內容為1,192.168.0.72節點zookeeper的myid內容為2,192.168.0.73節點zookeeper的myid內容為3,保證叢集內唯一即可。


4、啟動Zookeeper服務,在每個節點的安裝目錄下執行命令:

./bin/zkServer.sh start


5、檢查是否正常執行,在每個點的安裝目錄下執行命令:
./bin/zkServer.sh status


Error contactingservice?莫慌,由於其他節點還未啟動,無法連線問題,將其他叢集節點的服務全部啟動。再檢視:


其中1臺為Mode:leader,2臺為Mode:follower。

相關碰到的問題,可檢視bin目錄下zookeeper.out輸出的日誌,進一步排查。

以上,Zookeeper叢集部署完畢。


3.2 Kafka

1、解壓軟體包

tar -xzvf  kafka_2.12-1.0.0.tgz

2、進入配置檔案目錄, cdkafka_2.12-1.0.0/config/,使用server. properties複製2檔案:server1. properties、server2.properties。其中,broker.id在叢集內保證唯一。

Server1.properties加入配置(刪除已註釋配置前#符號):

broker.id=1
listeners=PLAINTEXT://192.168.0.63:9092
advertised.listeners=PLAINTEXT://192.168.0.63:9092
log.dirs=/home/kafka-logs1

Server2.properties加入配置(刪除已註釋配置前#符號):

broker.id=2
listeners=PLAINTEXT://192.168.0.63:9093
advertised.listeners=PLAINTEXT://192.168.0.63:9093
log.dirs=/home/kafka-logs2
修改Zookepeer配置(Kafka預設為自帶的Zookeeper配置):
zookeeper.connect=192.168.0.71:2181,192.168.0.72:2181,192.168.0.74:2181

3、啟動Kafka Server:

bin/kafka-server-start.sh config/server1.properties &
bin/kafka-server-start.sh config/server2.properties &

以上,Kafka叢集部署完畢