更新时间:2025-09-03 GMT+08:00

Kafka扩容会影响业务吗?

扩容Kafka实例的影响如表1所示。

表1 变更实例规格的影响

变更配置类型

影响

基准带宽/代理数量

  • 扩容基准带宽/代理数量不会影响原来的代理,业务也不受影响
  • 扩容基准带宽/代理数量时,系统会根据当前磁盘大小进行相应比例的存储空间扩容。例如扩容前实例的代理数为3,每个代理的磁盘大小为200GB,扩容后实例的代理数为10,此时代理的磁盘大小依旧为200GB,但是总磁盘大小为2000GB。
  • 新创建的Topic才会分布在新代理上,原有Topic还分布在原有代理上,造成分区分布不均匀。通过修改Kafka分区平衡,实现将原有Topic分区的副本迁移到新代理上。

存储空间

  • 扩容存储空间有次数限制,只能扩容20次
  • 扩容存储空间不会影响业务

代理规格

  • 若Topic为单副本,扩容期间无法对该Topic生产消息或消费消息,会造成业务中断
  • 若Topic为多副本,扩容代理规格不会造成服务中断,但可能会导致消费的分区消息发生乱序,请谨慎评估业务影响,建议您在业务低峰期扩容。
  • 扩容代理规格的过程中,节点滚动重启造成分区Leader切换,会发生秒级连接闪断,在用户网络环境稳定的前提下,Leader切换时长一般为1分钟以内。多副本的Topic需要在生产客户端配置重试机制,方法如下:
    • 生产客户端为Kafka开源客户端时,检查是否配置retries参数,建议此参数值设置为3~5。
    • 生产客户端为Flink客户端时,检查是否配置重启策略,配置重启策略可以参考如下代码。
      StreamExecutionEnvironment env = StreamExecutionEnvironment.getExecutionEnvironment();
      env.setRestartStrategy(RestartStrategies.fixedDelayRestart(3, Time.seconds(20)));
  • 变更代理规格的时长和代理数量有关,单个代理的变更时长一般在5~10分钟,代理数量越多,规格变更时间越长。