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
命令验证)后再升级下一个节点,避免集群整体停机。