kafka topic数量上限_如何使用kafka增加topic的备份数量,让业务更上一层楼

一、困难点

建立topic的时候,可以通过指定参数 --replication-factor 设置备份数量。但是,一旦完成建立topic,则无法通过kafka-topic.sh 或者 命令修改replica数量。

二、解决办法

​ 实际上,我们可以考虑一种 “另类” 的办法:可以利用 kafka-reassign-partitions.sh 命令对所有分区进行重新分布,在做分区重新分布的时候,通过增加每个分区的replica备份数量来达到目的。

​ 本文将介绍如何利用 kafka-reassign-partitions.sh 命令增加topic的备份数量。

注意:以下命令使用到的topic名称、zookeeper的ip和port,需要读者替换成为实际集群的参数。

(假设kafka集群有4个broker,id分别为:1001,1002,1003,1004)

2.1、获取当前topic的所有分区分布在broker的情况

d7f4002746bb336addf72269ab6a3f11.png

可以看出,ranger_audits 这个topic有10个分区,每个分区只有一个feplica备份,分布在1001和1002两台broker上面。

下面我们需要将ranger_audits 的每个分区数据都增加到2个replica备份,且分布到4个broker上面。

2.2、创建增加replica备份数量的配置文件

(注意:尽量保持topic的原有每个分区的主备份不变化。因此,配置文件的每个分区的第一个broker保持不变。)

fef9d71d5bdc79528e5e19a6e66aa296.png

上面的配置文件说明,我们将topic的每个分区都增加了一个replica,且保持每个分区原有的主备份所在broker不变化,将每个分区新增的replica备份数据放到到1003和1004两个broker上面。

2.3、开始执行增加分区

9b3fb32f8685a84ba21a4caf5529d7bc.png

2.4、查看执行进度

3cb3f49a77327948994d408490db1fe2.png

上面显示增加分区操作成功

2.5、再次查看topic的情况

84c7d9e7f9342dacc283458fb4b18c23.png

三、进一步思考

​ 利用上述介绍的办法,除了可以用来增加topic的备份数量之外,还能够处理以下几个场景:

1、对topic的所有分区数据进行整体迁移。**怎么理解呢?假如集群有N个broker,后来新扩容M个broker。由于新扩容的 broker磁盘都是空的,原有的broker磁盘占用都很满。那么我们可以利用上述方法,将存储在原有N个broker的某些topic整体搬迁到新扩 容的M个broker,进而实现kafka集群的整体数据均衡。

​ 具体使用方法就是:通过编写2.2章节的配置文件,将topic的所有分区都配置到新的M个broker上面去,再执行excute,即可完成topic的所有分区数据整体迁移到新扩容的M个broker节点。

2、broker坏掉的情况。***导致某些topic的某些分区的replica数量减少,可以利用kafka-reassign-partitions.sh增加replica;

3、kafka 某些broker磁盘占用很满,某些磁盘占用又很少。***可以利用kafka-reassign-partitions.sh迁移某些topic的分区数据到磁盘占用少的broker,实现数据均衡;

4、kafka集群扩容。***需要把原来broker的topic数据整体迁移到新的broker,合理利用新扩容的broker,实现负载均衡。

喜欢的小伙伴,点个关注吧,每天分享新的内容!

  • 0
    点赞
  • 1
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值