一、升级前准备工作
/var/lib/zookeeper
)和Kafka的日志目录(默认/tmp/kafka-logs
),防止升级过程中数据丢失或损坏。bin/kafka-topics.sh --describe --topic your_topic_name
(输出中的Version
字段即为当前版本)。.tgz
格式)。inter.broker.protocol.version
)、废弃的API(如旧版Consumer API)、新增的功能或参数要求。二、具体升级操作步骤
sudo systemctl stop kafka
。/opt
),并重命名便于管理:tar -xzf kafka_2.12-3.5.2.tgz -C /opt/
mv /opt/kafka_2.12-3.5.2 /opt/kafka_new
config/server.properties
、config/zookeeper.properties
)复制到新版本目录,作为修改的基础:cp /opt/kafka_old/config/server.properties /opt/kafka_new/config/
cp /opt/kafka_old/config/zookeeper.properties /opt/kafka_new/config/
broker.id
(确保集群内唯一)、listeners
(更新Broker监听地址,如PLAINTEXT://:9092
)、advertised.listeners
(更新客户端访问地址,如PLAINTEXT://your_server_ip:9092
);inter.broker.protocol.version
(如3.5
)和log.message.format.version
(如3.5
),用于控制Broker间通信和消息格式的版本。cd /opt/kafka_new/bin/
./zookeeper-server-start.sh ../config/zookeeper.properties &
./kafka-server-start.sh ../config/server.properties &
# 检查Kafka版本
/opt/kafka_new/bin/kafka-topics.sh --version
# 列出所有Topic,确认集群正常运行
/opt/kafka_new/bin/kafka-topics.sh --list --bootstrap-server localhost:9092
三、升级后关键注意事项
top
、iotop
命令或Prometheus+Grafana监控);kafka-topics.sh --describe
),确保分区均衡;kafka-consumer-groups.sh --describe
),避免消息积压。# 停止新版本Kafka
sudo systemctl stop kafka
# 启动旧版本Kafka(假设旧版本目录为/opt/kafka_old)
/opt/kafka_old/bin/kafka-server-start.sh /opt/kafka_old/config/server.properties &
kafka-clients-3.5.2.jar
),避免因客户端与服务端版本不兼容导致连接失败或功能异常。