为了账号安全,请及时绑定邮箱和手机立即绑定

Kafka集群不停机平滑升级

本文作者:徐葳

之前我们在使用Kafka 0.9.0.0版本的时候,遇到一个比较诡异的问题:

针对消费者组增加消费者的时候可能会导致rebalance,进而导致部分consumer不能再消费分区数据。

意思就是之前针对这个topic的5个分区只有2个消费者消费数据,后期我动态的把消费者调整为了5个,这样可能会导致部分消费者无法消费分区中的数据。

针对这个bug这里有一份详细描述:
https://issues.apache.org/jira/browse/KAFKA-2978

此bug官方在0.9.0.1版本中进行了修复。

当时我们的线上集群使用的就是0.9.0.0的版本。

所以我们需要对线上集群在不影响线上业务的情况下进行升级,称为平滑升级,也就是升级的时候不影响线上的正常业务运行。

接下来我们就查看了官网文档,上面有针对集群平滑升级的一些信息
http://kafka.apache.org/090/documentation.html#upgrade

在验证这个升级流程的时候我们是在测试环境下,先模拟线上的集群环境,进行充分测试,可千万不能简单测试一下就直接搞到测试环境去做,这样是很危险的。

由于当时这个kafka集群我们还没有移交给运维负责,并且运维当时对这个框架也不是很熟悉,所以才由我们开发人员来进行平滑升级,否则这种框架升级的事情肯定是交给运维去做的。

那接下来看一下具体的平滑升级步骤

小版本之间集群升级不需要额外修改集群的配置文件。只需要按照下面步骤去执行即可。

假设kafka0.9.0.0集群在三台服务器上,需要把这三台服务器上的kafka集群升级到0.9.0.1版本
注意:提前在集群的三台机器上把0.9.0.1的安装包,解压、配置好。

主要是log.dirs这个参数,0.9.0.1中的这个参数和0.9.0.0的这个参数一定要保持一致,这样新版本的kafka才可以识别之前的kakfa中的数据。

在集群升级的过程当中建议通过CMAK(kafkamanager)查看集群的状态信息,比较方便
图片描述

1:先stop掉0.9.0.0集群中的第一个节点,然后去CMAK上查看集群的broker信息,确认节点确实已停掉。并且再查看一下,节点的副本下线状态。确认集群是否识别到副本下线状态。

图片描述

图片描述

然后在当前节点把kafka0.9.0.1启动起来。再回到CMAK中查看broker信息,确认刚启动的节点是否已正确显示,并且还要确认这个节点是否可以正常接收和发送数据。

图片描述

2:按照第一步的流程去依次操作剩余节点即可,就是先把0.9.0.0版本的kafka停掉,再把0.9.0.1版本的kafka启动即可。

注意:每操作一个节点,需要稍等一下,确认这个节点可以正常接收和发送数据之后,再处理下一个节点。

点击查看更多内容
TA 点赞

若觉得本文不错,就分享一下吧!

评论

作者其他优质文章

正在加载中
  • 推荐
  • 评论
  • 收藏
  • 共同学习,写下你的评论
感谢您的支持,我会继续努力的~
扫码打赏,你说多少就多少
赞赏金额会直接到老师账户
支付方式
打开微信扫一扫,即可进行扫码打赏哦
今天注册有机会得

100积分直接送

付费专栏免费学

大额优惠券免费领

立即参与 放弃机会
意见反馈 帮助中心 APP下载
官方微信

举报

0/150
提交
取消