一、升级前准备
server.properties、zookeeper.properties)、数据目录(log.dirs指定的路径)、ZooKeeper数据目录(避免升级过程中数据丢失)。二、具体升级步骤
systemctl stop kafka(若使用systemd)或通过kafka-server-stop.sh脚本停止。systemctl stop zookeeper(若使用systemd)或通过zkServer.sh stop脚本停止(确保元数据服务暂停,避免升级时数据不一致)。kafka_2.12-3.9.1.tgz):wget https://downloads.apache.org/kafka/3.9.1/kafka_2.12-3.9.1.tgz。tar -xzf kafka_2.12-3.9.1.tgz -C /opt/kafka --strip-components=1(--strip-components=1用于去除压缩包内的层级目录)。server.properties复制到新目录(保留自定义配置如broker.id、zookeeper.connect)。inter.broker.protocol.version和log.message.format.version,3.x版本可能默认使用KRaft模式需设置process.roles=broker,controller)。log.dirs、zookeeper.connect是否指向正确目录)。listener.security.protocol.map、advertised.listeners等)。systemctl start zookeeper或bin/zookeeper-server-start.sh config/zookeeper.properties &。systemctl start kafka或bin/kafka-server-start.sh config/server.properties &(使用systemd需提前更新服务文件,如复制kafka.service到/etc/systemd/system/并重载:systemctl daemon-reload)。tail -f /var/log/kafka/server.log)和ZooKeeper日志,确认无错误信息。bin/kafka-topics.sh --list --bootstrap-server localhost:9092(3.x版本推荐使用--bootstrap-server替代--zookeeper)。kafka-console-producer.sh发送消息、kafka-console-consumer.sh接收消息,验证消息收发功能正常。bin/kafka-topics.sh --describe --topic _consumer_offsets --bootstrap-server localhost:9092(查看Topic的version字段是否为新版本)。三、升级后注意事项