一、環境準備
sudo apt update && sudo apt install -y openjdk-11-jdk
java -version # 驗證安裝(需顯示11+版本)
二、下載與解壓Kafka
wget https://downloads.apache.org/kafka/3.6.1/kafka_2.13-3.6.1.tgz
/opt/kafka(推薦,避免權限問題):tar -xzf kafka_*.tgz
sudo mv kafka_2.13-3.6.1 /opt/kafka
三、配置Kafka
server.properties(關鍵配置項說明):sudo vim /opt/kafka/config/server.properties
PLAINTEXT://:9092);/var/lib/kafka-logs);localhost:2181,集群用逗號分隔的多個地址)。四、啟動ZooKeeper(傳統模式必需) Kafka 2.8及以上版本支持KRaft模式(無需ZooKeeper),但傳統模式仍需ZooKeeper管理元數據。若使用傳統模式:
zookeeperd,可直接啟動:sudo apt install -y zookeeperd
sudo systemctl start zookeeper # 啟動服務
sudo systemctl status zookeeper # 驗證狀態(需顯示"active (running)")
/etc/zookeeper/conf/zoo.cfg,設置數據目錄和端口:dataDir=/var/lib/zookeeper
clientPort=2181
五、啟動Kafka服務
bin目錄,使用-daemon參數在后臺啟動:/opt/kafka/bin/kafka-server-start.sh -daemon /opt/kafka/config/server.properties
sudo vim /etc/systemd/system/kafka.service
內容如下:[Unit]
Description=Apache Kafka
After=zookeeper.service # 依賴ZooKeeper(傳統模式)
[Service]
User=kafka
ExecStart=/opt/kafka/bin/kafka-server-start.sh /opt/kafka/config/server.properties
ExecStop=/opt/kafka/bin/kafka-server-stop.sh
Restart=on-failure
[Install]
WantedBy=multi-user.target
啟用并啟動服務:sudo systemctl enable kafka # 開機自啟
sudo systemctl start kafka # 立即啟動
六、驗證Kafka功能
kafka-topics.sh創建名為test的Topic(分區數1,副本因子1):/opt/kafka/bin/kafka-topics.sh --create --topic test --bootstrap-server localhost:9092 --partitions 1 --replication-factor 1
test Topic發送消息:echo "Hello Kafka" | /opt/kafka/bin/kafka-console-producer.sh --topic test --bootstrap-server localhost:9092
test Topic接收消息(--from-beginning表示從最早消息開始):/opt/kafka/bin/kafka-console-consumer.sh --topic test --from-beginning --bootstrap-server localhost:9092
七、常見問題解決
zoo.cfg中的clientPort或server.properties中的listeners為其他端口(如2182、9093);log.dirs,執行sudo chown -R kafka:kafka /var/lib/kafka-logs(假設Kafka以kafka用戶運行);