kafka如何扩容?

小夕夕 发表于: 2020-06-25   最后更新时间: 2020-06-25  

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

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



您需要解锁本帖隐藏内容请: 点击这里
本帖隐藏的内容




上一条: kafka_2.13-2.50查询不到topic信息
下一条: 0.11.0.0版本的kafka使用sasl/scram认证(单独搭建的zk集群且zk未进行认证配置),kafka集群能启动,但一直warn日志,求大神帮忙解决

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

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

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

    • 我想总结下,麻烦看看思路是否正确:(在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进行数据迁移

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

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

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