Skip to main content
本文档介绍使用 Kafka CLI 工具对 AutoMQ 集群进行数据自动重平衡测试。其中 Kafka CLI 工具通过 AutoMQ 提供的 docker 镜像运行。
  1. 创建一个具有多个分区的 Topic,并手动将分区迁移到特定节点,制造出分区分布的不均衡。
  2. 然后向所有分区发送均衡的负载,观察分区是否会在不同的 Broker 之间自动迁移。
这种自动数据平衡是 AutoMQ 的内置功能,可以确保数据在集群中自动平衡分布。通过监控分区的分布情况和 Broker 的负载情况,可以验证分区自动平衡是否按预期工作。

前置条件

进行分区数据自动重平衡测试前,需要满足如下条件: 完成 AutoMQ 集群的安装部署 ,您可以参考以下方式安装部署 AutoMQ:
如果通过Linux 主机部署多节点集群▸ 或者Kubernetes 部署多节点集群▸ 部署集群,需要确保启动 Controller 时设置 autobalancer.controller.enable 为 true 才能开启数据自动重平衡。
此外,运行测试程序的主机 需要满足如下条件:
  • Linux/Mac/Windows Subsystem for Linux
  • Docker

体验:持续数据自平衡

如果此前的 AutoMQ 集群参考Docker 部署多节点测试集群▸ 部署,则获取的集群 Bootstrap 地址是类似 “server1:9092,server2:9092,server3:9092 ”,且 AutoMQ 集群位于“automq_net ” Docker 网络下。
请根据部署的实际配置,将下方的 bootstrap-server 地址更换成实际集群的地址。

创建 Topic

查看分区分布

手动迁移分区

为了便于观察到持续数据自平衡,我们手动地将分区迁移到 node2 上。
  1. 创建分区迁移计划。
  1. 执行分区迁移计划。
  1. 手动迁移后,查看分区分布如下:

启动生产者

启动消费者

再次查看分区分布

经过一段时间后,你会观察到生产者产生以下日志。
等待若干秒后,生产将恢复正常。然后再次检查分区状态。
观察到,由于我们将分区全部迁移到了 node2 上,发送消息时全部消息都会被发送到 node2 上,造成了 node2 的局部热点,触发了 AutoMQ 的 Self-Balancing。AutoMQ 将分区重新迁移到各个节点均衡的状态。