一、單機版Kafka安裝
在學習Kafka之前,我們需要先安裝單機版的Kafka。
1、下載Kafka包
在Kafka的官網上可以下載到Kafka的安裝包,下載完成後解壓到指定目錄。
2、修改配置文件
Kafka的配置文件在config/server.properties目錄下,需要修改broker.id、log.dirs、zookeeper.connect三個屬性。
broker.id=0
log.dirs=/tmp/kafka-logs
zookeeper.connect=localhost:2181
3、啟動Zookeeper
Kafka依賴於Zookeeper,需要先啟動Zookeeper。
bin/zookeeper-server-start.sh config/zookeeper.properties
4、啟動Kafka
在Kafka的解壓目錄下執行以下命令。
bin/kafka-server-start.sh config/server.properties
5、測試Kafka
使用命令行創建topic並進行消息傳輸測試。
bin/kafka-topics.sh --create --zookeeper localhost:2181 --replication-factor 1 --partitions 1 --topic test
bin/kafka-console-producer.sh --broker-list localhost:9092 --topic test
bin/kafka-console-consumer.sh --bootstrap-server localhost:9092 --topic test --from-beginning
二、Kafka集群安裝
在單機版Kafka安裝成功之後,我們可以開始安裝Kafka集群。
1、準備工作
首先需要準備多台服務器,假設我們有3台服務器,分別是192.168.1.100、192.168.1.101、192.168.1.102。
分別在三台服務器上安裝JDK。
在每台服務器上分別創建Kafka的安裝目錄,我們可將其放在/opt/kafka。
2、配置Zookeeper
由於Kafka集群依賴於Zookeeper,需要先配置Zookeeper。
在三台服務器上分別修改Zookeeper的配置文件,將其中的dataDir和clientPort屬性修改為以下內容。
dataDir=/opt/kafka/zookeeper
clientPort=2181
在192.168.1.100上啟動Zookeeper。
/opt/kafka/bin/zookeeper-server-start.sh /opt/kafka/config/zookeeper.properties
在192.168.1.101和192.168.1.102上啟動Zookeeper。
/opt/kafka/bin/zookeeper-server-start.sh /opt/kafka/config/zookeeper.properties
在三台服務器上都啟動Zookeeper之後,通過以下命令檢測是否啟動成功。
/opt/kafka/bin/zookeeper-shell.sh 192.168.1.100:2181
3、配置Kafka
在三台服務器上分別修改Kafka的配置文件。
broker.id=0
listeners=PLAINTEXT://:9092
advertised.listeners=PLAINTEXT://192.168.1.100:9092
zookeeper.connect=192.168.1.100:2181,192.168.1.101:2181,192.168.1.102:2181
log.dirs=/opt/kafka/logs
其中,192.168.1.100為Kafka集群中的主服務IP地址,zookeeper.connect則包含了所有Kafka管理的Zookeeper的地址,listener和advertised.listeners屬性分別用於指定Kafka的監聽地址和對外廣告地址。
4、啟動Kafka
在192.168.1.100上啟動Kafka。
/opt/kafka/bin/kafka-server-start.sh /opt/kafka/config/server.properties
在192.168.1.101和192.168.1.102上啟動Kafka。
/opt/kafka/bin/kafka-server-start.sh /opt/kafka/config/server.properties
5、測試Kafka
使用命令行創建topic並進行消息傳輸測試。
/opt/kafka/bin/kafka-topics.sh --create --zookeeper 192.168.1.100:2181 --replication-factor 3 --partitions 3 --topic test
/opt/kafka/bin/kafka-console-producer.sh --broker-list 192.168.1.100:9092 --topic test
/opt/kafka/bin/kafka-console-consumer.sh --bootstrap-server 192.168.1.100:9092 --topic test --from-beginning
三、Kafka集群故障處理
Kafka集群安裝成功後,我們需要時刻注意集群的健康狀態,及時處理可能出現的故障。
1、故障場景
以下是可能出現的故障場景:
1)Zookeeper宕機
集群中的每個Kafka服務都依賴於Zookeeper,一旦Zookeeper宕機,會影響整個Kafka集群的正常運行。
2)部分Kafka服務宕機
即使集群中的某個Kafka服務宕機,對整個Kafka集群也會產生影響,因為這個服務可能正好承擔了某些關鍵任務。
2、處理方法
以下是處理可能出現的故障的方法:
1)Zookeeper宕機
在集群中選取一台服務器,在該服務器上啟動臨時Zookeeper。
/opt/kafka/bin/zookeeper-server-start.sh config/zookeeper.properties
/opt/kafka/bin/kafka-configs.sh --zookeeper localhost:2181 --alter --add-config 'unclean.leader.election.enable=true' --entity-type brokers --entity-name 0
2)部分Kafka服務宕機
重新分配partitions。
/opt/kafka/bin/kafka-preferred-replica-election.sh --zookeeper 192.168.1.100:2181
四、總結
通過本文的介紹,我們學習了如何安裝單機版Kafka,以及如何安裝Kafka集群,並對可能出現的故障進行了處理。將來在實際使用過程中,我們需要不斷地學習和探索,以發掘Kafka更多的使用方法。
原創文章,作者:IYHTP,如若轉載,請註明出處:https://www.506064.com/zh-hant/n/313396.html