您在升级消息队列Kafka版实例的流量规格时,可能会触发集群横向扩容。集群横向扩容完成后,您需要进行Topic引流,使Topic流量重新均匀分布到扩容后的集群上。否则原有的Topic流量还是打在扩容前的集群节点上,原有的Topic的峰值流量会受限于扩容前的峰值流量。新增的Topic不受限于扩容前的流量规格。

前提条件

您的 消息队列Kafka版实例处于 服务中正在等待 Topic 引流的状态。
说明 升级实例的流量规格操作以及集群横向扩容触发规则,请参见 升级实例配置

注意事项

消息队列Kafka版实例处于正在等待 Topic 引流状态时,您可以正常使用该实例收发消息,但不能在该实例下创建Topic、Group等资源。您必须完成Topic引流或者选择不引流,才能重新创建资源。

引流方式

引流方式 原理 影响 适用场景 持续时间
新增分区 为原集群节点上的所有Topic在扩容后的新节点中增加分区。
  • 分区消息乱序。
  • 分区数量改变。如果您的客户端无法自动感知到新分区(例如:指定分区发送消费以及一些流计算场景),您可能需要重启或者修改客户端代码。
  • 不要求分区顺序。
  • 不指定分区发送。
  • 消费方式采取订阅。
秒级。
迁移分区(推荐)
  • Local存储:使用kafka-reassign-partitions工具迁移分区数据。
  • 云存储:修改映射关系,不迁移分区数据。
  • Local存储:临时性的内部流量。
  • 云存储:无临时性的内部流量。
任何集群扩容场景。
  • Local存储:分钟级或小时级。取决于要迁移的Local存储数据量。如果数据量较大,可能持续几小时甚至更久,您需要谨慎评估。建议您在业务流量低峰期执行迁移操作。
  • 云存储:秒级。迁移1个Topic大约需要30秒。
不引流(不推荐) 不进行任何操作,即原有的Topic依旧分布在扩容前的集群节点上,新增的Topic均衡分布到扩容后的所有集群节点上。
  • 原有的Topic峰值流量会受限于扩容前的流量规格。
  • 如果原有的Topic流量较大,可能会出现集群节点之间流量不均衡。
  • 原有的Topic流量非常小,并且集群扩容后原有的Topic流量没有较大提升。
  • 集群扩容后会新建Topic,并且绝大部分流量会打在新建的Topic上。
立即生效。

操作步骤

  1. 登录消息队列Kafka版控制台
  2. 概览页面的资源分布区域,选择地域。
  3. 实例列表页面,单击目标实例名称。
  4. 实例详情页面的概览区域的右上角,单击Topic 引流
  5. 实例 Topic 引流面板,选择引流方式。如何选择引流方式,请参见引流方式
    Topic 管理页面,可以查看所有的Topic 状态待引流

执行结果

Topic引流完成后,在 Topic 管理页面,Topic 状态变为 服务中