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)和日志,确保无错误。