在Ubuntu上搭建Kafka集群需要以下步驟:
安裝Java環境:
sudo apt update
sudo apt install openjdk-11-jdk -y
開放端口: Kafka需要開放9092端口和9093端口,三臺機器上都需開放這兩個端口。
sudo firewall-cmd --zone public --add-port 9092/tcp --permanent
sudo firewall-cmd --zone public --add-port 9093/tcp --permanent
sudo firewall-cmd --reload
下載預編譯的Kafka二進制文件,例如Kafka 3.6.2版本。
wget https://downloads.apache.org/kafka/3.6.2/kafka_2.12-3.6.2.tgz
tar -xzf kafka_2.12-3.6.2.tgz
sudo mv kafka_2.12-3.6.2 /usr/local/kafka
進入配置目錄并編輯server.properties文件。
cd /usr/local/kafka/config/kraft
sudo vi server.properties
主要配置項包括:
node.id: Kafka的broker節點id。controller.quorum.voters: Kafka集群中的節點,定義了一組Controller節點及其網絡地址。advertised.listeners: 節點自己的監聽地址。在任意一個節點上生成集群id。
/usr/local/kafka/bin/kafka-storage.sh random-uuid
然后在三臺機器上執行以下命令完成集群元數據配置:
bin/kafka-storage.sh format -t [生成的字符串] -c config/kraft/server.properties
在每臺機器上啟動Kafka服務:
cd /usr/local/kafka
sudo bin/kafka-server-start.sh -daemon config/kraft/server.properties
使用以下命令檢查Kafka broker是否在監聽端口9092:
netstat -tulnp | grep 9092
可以通過kafka-console-producer.sh和kafka-console-consumer.sh兩個腳本進行測試。
sudo /usr/local/kafka/bin/kafka-topics.sh --create --bootstrap-server 192.168.3.191:9092,192.168.3.192:9092,192.168.3.193:9092 --replication-factor 3 --partitions 1 --topic test-topic
sudo /usr/local/kafka/bin/kafka-topics.sh --list --bootstrap-server 192.168.3.191:9092,192.168.3.192:9092,192.168.3.193:9092
sudo /usr/local/kafka/bin/kafka-console-producer.sh --broker-list 192.168.3.191:9092,192.168.3.192:9092,192.168.3.193:9092 --topic test-topic
sudo /usr/local/kafka/bin/kafka-console-consumer.sh --bootstrap-server 192.168.3.191:9092,192.168.3.192:9092,192.168.3.193:9092 --topic test-topic --from-beginning
node.id不沖突。server.properties配置文件里面找到log.dirs配置的路徑,將該路徑下的文件全部刪除,重新創建KRaft集群,最后重啟Kafka。以上步驟可以幫助你在Ubuntu上成功搭建一個Kafka集群。如果在搭建過程中遇到問題,可以參考相關文檔或社區支持。