快速搭建 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
./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叢集部署完畢