Kafka在CentOS上的版本升级指南
/var/lib/zookeeper)和Kafka的日志目录(默认/var/lib/kafka/logs),可使用rsync或tar工具完成。同时备份Kafka与Zookeeper的配置文件(如server.properties、zookeeper.properties),避免配置丢失。bin/kafka-topics.sh --describe --topic your_topic_name | grep "Version"
# 或通过Kafka版本命令
bin/kafka-topics.sh --version
输出结果中的Version字段即为当前Kafka版本(如3.5.2)。.tgz格式),建议选择稳定版(如GA版本)。inter.broker.protocol.version(Broker间通信协议版本);log.message.format.version(日志消息格式版本);log.dirs替代log.dir)或修改了默认行为。systemctl命令停止运行中的Kafka服务(若使用其他服务管理工具,如init.d,需调整命令):sudo systemctl stop kafka
执行后通过ps -ef | grep kafka确认Kafka进程已完全停止。/opt/kafka),并覆盖旧版本文件:tar -xzf kafka_2.13-3.9.0.tgz -C /opt/kafka --strip-components=1
其中--strip-components=1用于去除压缩包内的顶层目录(如kafka_2.13-3.9.0),直接将文件解压到/opt/kafka。server.properties复制到新版本目录(如/opt/kafka/config),并根据新版本要求修改以下关键配置:
listeners(Broker监听地址,如PLAINTEXT://:9092)和advertised.listeners(对外暴露的Broker地址,如PLAINTEXT://your_server_ip:9092);zookeeper.connect(Zookeeper集群地址,如localhost:2181)正确;inter.broker.protocol.version(如从3.5升级到3.9,需设置为3.9)和log.message.format.version(如设置为3.9);replication.factor(副本因子,建议≥3)、log.retention.hours(日志保留时间)等。sudo systemctl start zookeeper
启动Kafka服务:sudo systemctl start kafka
通过systemctl status kafka确认服务状态为active (running)。bin/kafka-topics.sh --version
# 或通过describe命令查看Topic版本
bin/kafka-topics.sh --describe --topic your_topic_name | grep "Version"
输出结果应显示为目标版本(如3.9.0)。/opt/kafka/logs/server.log)和ZooKeeper(/var/lib/zookeeper/log/version-2/snapshot.xxxxx)的日志文件,确认无ERROR或WARN级别的错误信息(如配置错误、连接失败)。kafka-console-producer.sh和kafka-console-consumer.sh)发送和接收消息,验证集群功能是否正常:# 生产者发送消息
bin/kafka-console-producer.sh --broker-list localhost:9092 --topic test_topic
# 消费者接收消息
bin/kafka-console-consumer.sh --bootstrap-server localhost:9092 --topic test_topic --from-beginning
若能正常收发消息,说明升级成功。kafka-exporter)监控集群的关键指标,包括:
message lag);ISR集合是否稳定)。kafka-broker-api-versions.sh命令验证)后再升级下一个节点,避免集群整体停机。