Kafka的核心配置集中在config/server.properties
文件中,需重點驗證以下參數的正確性:
broker.id=0
)。協議://主機名/IP:端口
(如PLAINTEXT://your_server_ip:9092
)。需確保與服務器實際IP一致,避免使用localhost
(若需遠程訪問)。PLAINTEXT://public_ip:9092
),否則客戶端無法連接。主機名/IP:端口
(如localhost:2181
或zk1:2181,zk2:2181,zk3:2181
)。需確保Zookeeper服務已啟動且地址可達。/tmp/kafka-logs
或自定義路徑)。需確保目錄存在且有讀寫權限(chmod -R 755 /tmp/kafka-logs
)。Kafka依賴Zookeeper管理集群元數據(如Topic、分區、副本信息),需確保Zookeeper正常運行:
bin/zkServer.sh start
。bin/zkServer.sh status
,若顯示“Mode: standalone”或“Leader/Follower”,則表示運行正常。sudo netstat -tulnp | grep 端口號
(如9092
)檢查Kafka監聽端口是否被其他進程占用。若沖突,修改server.properties
中的listeners
端口或停止占用進程。ping your_server_ip
(確保網絡可達);telnet your_server_ip 9092
(確保端口開放)。sudo ufw allow 9092
)或配置云服務器安全組規則。Kafka依賴Java運行時環境(JRE),需確保Java已正確安裝:
java -version
,需顯示Java 8或更高版本(如openjdk version "11.0.xx"
)。JAVA_HOME
已設置(如export JAVA_HOME=/usr/lib/jvm/java-11-openjdk-amd64
),并添加到PATH
中(export PATH=$JAVA_HOME/bin:$PATH
)。Kafka日志默認位于logs/server.log
(或config/server.properties
中log.dirs
指定的目錄),通過以下命令實時查看日志:
tail -f /path/to/kafka/logs/server.log
若啟動失敗,日志中會顯示具體錯誤(如“Address already in use”“No such file or directory”),根據錯誤信息針對性解決。
bin/kafka-topics.sh --create --bootstrap-server localhost:9092 --replication-factor 1 --partitions 1 --topic test
(若報錯“Timed out waiting for a node assignment”,需檢查Zookeeper連接或advertised.listeners
配置)。bin/kafka-console-producer.sh --broker-list localhost:9092 --topic test
(輸入測試消息,如“hello kafka”)。bin/kafka-console-consumer.sh --bootstrap-server localhost:9092 --topic test --from-beginning
(查看是否收到發送的消息)。修改配置文件后,需重啟Kafka服務:
sudo systemctl restart kafka
(若使用systemd)或bin/kafka-server-stop.sh
+ bin/kafka-server-start.sh config/server.properties
(若使用腳本)。重啟后再次檢查服務狀態(sudo systemctl status kafka
)和日志,確保無錯誤。