在Ubuntu系统上升级Kafka版本时,需重点关注以下事项:
-
版本兼容性
- 若从低于3.3.x的版本升级至Kafka 4.0+,需先升级到3.9.x过渡版本,因Kafka 4.0默认使用KRaft模式,需元数据版本≥3.3.x。
- 确保新版本与现有Zookeeper版本兼容,Kafka 4.0移除Zookeeper依赖,需提前确认是否需迁移至KRaft模式。
-
升级前准备
- 数据备份:备份Kafka数据目录(
log.dirs
)和配置文件(server.properties
等)。
- 环境检查:确保系统已更新至最新,预留足够磁盘空间,关闭非必要服务以避免冲突。
- Java版本:Kafka 4.0需Java 11或更高版本,需提前升级Java环境。
-
升级操作要点
- 停止服务:先停止Kafka和Zookeeper服务(若使用内置Zookeeper)。
- 配置文件更新:
- 修改
server.properties
中的listeners
、advertised.listeners
、zookeeper.connect
(若保留Zookeeper)等配置。
- 若从非KRaft模式升级,需调整
inter.broker.protocol.version
并逐步重启节点。
- 安装新版本:解压新版本包,替换旧版本二进制文件,保留配置文件和数据目录。
-
升级后验证
- 服务状态:启动Kafka和Zookeeper,通过
kafka-topics.sh --list
验证Topic是否正常。
- 数据一致性:检查消息是否完整,可通过生产消费测试验证。
- 日志监控:关注
kafkaServer.out
等日志,排查启动异常或性能问题。
-
集群场景注意事项
- 滚动升级:建议逐个节点升级,避免集群不可用,升级后需确保所有节点使用相同协议版本。
- 零停机方案:大规模集群可参考Kafka Linking等工具实现双写迁移,减少业务中断。
参考来源: