亚洲在线久爱草,狠狠天天香蕉网,天天搞日日干久草,伊人亚洲日本欧美

為了賬號安全,請及時綁定郵箱和手機立即綁定

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 點贊

若覺得本文不錯,就分享一下吧!

評論

作者其他優質文章

正在加載中
手記
粉絲
168.3萬
獲贊與收藏
4.8萬

關注作者,訂閱最新文章

閱讀免費教程

  • 推薦
  • 評論
  • 收藏
  • 共同學習,寫下你的評論
感謝您的支持,我會繼續努力的~
掃碼打賞,你說多少就多少
贊賞金額會直接到老師賬戶
支付方式
打開微信掃一掃,即可進行掃碼打賞哦
今天注冊有機會得

100積分直接送

付費專欄免費學

大額優惠券免費領

立即參與 放棄機會
微信客服

購課補貼
聯系客服咨詢優惠詳情

幫助反饋 APP下載

慕課網APP
您的移動學習伙伴

公眾號

掃描二維碼
關注慕課網微信公眾號

舉報

0/150
提交
取消