kafka如何扩容?

小夕夕 发表于: 2020-06-25   最后更新时间: 2020-06-25 12:45:59   2,633 游览

如题:最近遇到线上kafka集群需要扩容的问题,站内搜索了下,好像没有相关文章。

另:如果我kafka节点增加,我直接新建topic(不管老的topic),新加分区,然后让程序配置成新建的topic,是不是就不用考虑以前的数据,而新的topic数据分配会采用新的分区策略?

发表于 2020-06-25
添加评论

之所以考虑加节点后,重新创建topic,加分区,主要怕在原有的topic上加分区,会出问题。

提问这个问题,主要是涉及到broker扩容后,相应的会有增加复本,还有增加分区。

kafka扩容基本是无风险的,已经创建的topic的分区在各个节点上已经确定了,不会重新分配(但是要保障新加的kafka节点网络和客户端之间是通的,否则会影响健康监测)。

另外,如果你的场景允许的话,你是可以通过连接新的topic,不用迁移了。

扩容后,你可以用迁移分区工具bin/kafka-reassign-partitions.sh,将老的分区迁到新的 完成负载均衡。
参考:https://www.orchome.com/454#item-7

小夕夕 -> 半兽人 3年前

扩容是没问题, 但是新扩容的机器上,__consumer_offsets 并没有这些信息, 这个没问题吗?

半兽人 -> 小夕夕 3年前

__consumer_offsets存储的是消费者的offset,你也可以把它也迁到新节点上。

小夕夕 -> 半兽人 3年前

我想总结下,麻烦看看思路是否正确:(在2个broker,2个副本是2个分区,一个topic为test的情况下)
1、kafka扩容1个节点:在不增加副本,也不增加分区的情况下,只需要对__consumer_offsets进行分区迁移?
2、kafka扩容1个节点,增加副本,不增加分区:需要对__consumer_offsets及topic进行test进行数据迁移
3、kafka扩容1个节点,增加分区,不增加副本:需要对__consumer_offsets及topic进行test进行数据迁移

半兽人 -> 小夕夕 3年前

__consumer_offsets就是一个topic,它的副本数就是它的健壮性,如果你需要它达到什么样的健壮性,就可以从你这3个选项中选择了。

小夕夕 -> 半兽人 3年前

没错,主要是kafka增加broder的时候,新加的节点上并没有这个__consumer_offsets这个副本内容。

你的答案

查看kafka相关的其他问题或提一个您自己的问题