Kafka版本滚动升级(不停机)

升级说明

升级Kafka集群的版本其实很简单,核心步骤只需要4步,但是我们需要在升级的过程中确保每一步操作都不会“打扰”到producer和consumer的正常运转。为此,笔者在本机搭了一个测试环境进行生产环境的版本升级测试。在开始之前,简要介绍一下测试环境的部署情况及目标:Kafka3.3.1测试环境,而目标是把该集群升级到3.4.0版本。

一、系统环境

Zookeeper集群 172.17.9.191 172.17.9.192 172.17.9.193 Kafka集群 172.17.9.191 172.17.9.192 172.17.9.193 现在Kafka版本:3.3.1,安装目录:/home/software/kafka_2.12-3.3.1 计划升级至版本:3.4.0,按照目录:/home/software/kafka_2.12-3.4.0

二、创建测试topic

1、创建测试topic

1. /home/software/kafka_2.12-3.3.1/bin/kafka-topics.sh --bootstrap-server 172.17.9.191:9092 --create --replication-factor 3 --partitions 1 --topic first
 2.  
 3. /home/software/kafka_2.12-3.3.1/bin/kafka-topics.sh --bootstrap-server 172.17.9.191:9092 --create --replication-factor 1 --partitions 1 --topic second

2、查看测试topic

/home/software/kafka_2.12-3.3.1/bin/kafka-topics.sh --bootstrap-server 172.17.9.191:9092 --describe --topic first

3、查看集群中所有的topic

/home/software/kafka_2.12-3.3.1/bin/kafka-topics.sh --bootstrap-server 172.17.9.191:9092 --list

三、升级步骤

1、安装新版本Kafka

先在172.17.9.191上面部署第一台3.4.0(新版本Kafka)。

1. tar -zxvf kafka_2.12-3.4.0 -C /home/software/
 2. mkdir /home/software/kafka_2.12-3.4.0/datas
 3. cp /home/software/kafka_2.12-3.3.1/config/server.properties /home/software/kafka_2.12-3.4.0/config/server.properties

2、修改好配置 注意:修改配置3.4.0(升级版本)的server.properties,添加2行,其他配置保持不变,特别是数据存储目录,cp 3.3.1(旧版本)的配置

1. cp /home/software/kafka_2.12-3.3.1/config/server.properties /home/software/kafka_2.12-3.4.0/config/server.properties
 2. vim /usr/local/kafka_2.-0.10.2.2/config/server.properties
 3. inter.broker.protocol.version=3.4.0
 4. log.message.format.version=3.4.0

3、停止新版本 注意:停止原版本的kafka,使用kafka自带stop脚本bin下的kafka-server-stop.sh或者kill掉

1. /home/software/kafka_2.12-3.3.1/bin/kafka-server-stop.sh
 2. ps -ef | grep kafka

4、启动新版本 注意:启动3.4.0的Kafka,由于之前配置了环境变量,注意用3.4.0目录下的程序去启动kafka,启动之后查看日志,发现在同步数据。

1. /home/software/kafka_2.12-3.4.0/bin/kafka-server-start.sh -daemon /home/software/kafka_2.12-3.4.0/config/server.properties
 2. tail -100 /home/software/kafka_2.12-3.4.0/logs/server.log
 3. cd datas/
 4. ll

查看topic first:

/home/software/kafka_2.12-3.3.1/bin/kafka-topics.sh --bootstrap-server 172.17.9.191:9092 --describe --topic first

测试创建topic test1

/home/software/kafka_2.12-3.3.1/bin/kafka-topics.sh --bootstrap-server 172.17.9.191:9092 --create --replication-factor 3 --partitions 1 --topic test1

注意:替换新版broker后,注意查看新版broker是否已经注册到zookeeper,所在机器上的的副本是否已经可用。确定可用之后再更新下一台broker。

5.看kafka在zookeeper中节点信息和查看方式 (1).先到zookeeper的bin下面 cd /home/software/zookeeper-3.8.1/bin (2).执行命令./zkCli.sh (3).输入命令 ls /,ls /kafka/topics可以看到topic信息。

再依次对剩下两台重复操作即可。

经验分享 程序员 微信小程序 职场和发展