方式 A 二进制包升级(通用、可控性强,适合自管或 Zookeeper 场景)
- 确认版本与运行状态:
kafka-topics.sh --version
sudo systemctl status kafka
- 停止服务:
sudo systemctl stop kafka
若仍使用 Zookeeper:sudo systemctl stop zookeeper
- 备份:
sudo cp -r /etc/kafka /etc/kafka.bak
sudo cp -r /var/lib/kafka /var/lib/kafka.bak
- 下载并解压新版本(示例为 4.0.0):
wget https://downloads.apache.org/kafka/4.0.0/kafka_4.0.0-bin.tar.gz
sudo tar -xzf kafka_4.0.0-bin.tar.gz -C /opt/
- 迁移配置与目录:
仅复制需要的配置,避免覆盖新版本默认优化项
sudo cp /etc/kafka.bak/server.properties /opt/kafka_4.0.0/config/
如沿用旧数据目录,确保配置指向 /var/lib/kafka
- 调整 systemd 单元(如使用 systemd 管理):
编辑 /etc/systemd/system/kafka.service,将 ExecStart 指向新二进制
示例:/opt/kafka_4.0.0/bin/kafka-server-start.sh /opt/kafka_4.0.0/config/server.properties
sudo systemctl daemon-reload
- 启动并验证:
sudo systemctl start kafka
kafka-topics.sh --version
tail -f /var/log/kafka/server.log
- 观察无误后再清理旧版本目录。