> ## Documentation Index
> Fetch the complete documentation index at: https://docs.automq.com/llms.txt
> Use this file to discover all available pages before exploring further.

# 示例：验证秒级分区迁移

> AutoMQ's Kafka-compatible cloud service enables rapid partition migration in seconds, ensuring seamless scalability and efficient data management in diverse environments.

本文档介绍使用 Kafka CLI 工具验证 AutoMQ 的秒级分区迁移功能。其中 Kafka CLI 工具通过 AutoMQ 提供的 docker 镜像运行。

首先，创建一个分区数为 1 的新 Kafka 主题，并启动一个生产者往其中写入一定量的数据。然后，尝试在不同的 AutoMQ broker 之间通过 reassign 命令迁移分区，观察分区迁移完成所需要的耗时。

### 前置条件

进行分区迁移测试前，需要满足如下条件：

**完成 AutoMQ 集群的安装部署** ，您可以参考以下方式安装部署 AutoMQ：

* [Docker 部署多节点测试集群▸](/zh/automq/getting-started/deploy-multi-nodes-test-cluster-on-docker)

**此外，运行测试程序的主机** 需要满足如下条件：

* Linux/Mac/Windows Subsystem for Linux

* Docker

### 体验分区迁移

如果此前的 AutoMQ 集群参考[Docker 部署多节点测试集群▸](/zh/automq/getting-started/deploy-multi-nodes-test-cluster-on-docker) 部署，则获取的集群 Bootstrap 地址是类似 “**server1:9092,server2:9092,server3:9092** ”，且 AutoMQ 集群位于“**automq\_net** ” Docker 网络下。

<Tip>
  请根据部署的实际配置，将下方的 bootstrap-server 地址更换成实际集群的地址。
</Tip>

#### 创建 Topic

```bash theme={null}

docker run --network automq_net automqinc/automq:1.5.5 /bin/bash -c "/opt/kafka/kafka/bin/kafka-topics.sh --create --topic reassign-topic --bootstrap-server server1:9092,server2:9092,server3:9092"

```

#### 发送消息

执行以下命令发送如干数量的数据。

```bash theme={null}

docker run --network automq_net  automqinc/automq:1.5.5 /bin/bash -c  "/opt/kafka/kafka/bin/kafka-producer-perf-test.sh --topic reassign-topic --num-records=1024000 --throughput 5120 --record-size 1024 --producer-props bootstrap.servers=server1:9092,server2:9092,server3:9092 linger.ms=100 batch.size=524288 buffer.memory=134217728 max.request.size=67108864"

```

#### 查看分区分布

```bash theme={null}

docker run --network automq_net  automqinc/automq:1.5.5 /bin/bash -c "/opt/kafka/kafka/bin/kafka-topics.sh --topic reassign-topic --describe --bootstrap-server server1:9092,server2:9092,server3:9092"

```

#### 在 Broker 之间迁移分区

当前步骤，假设测试的 “reassign-topic” 主题的分区 0 位于节点 1，将该分区迁移到节点 2。实际测试过程根据分区的分布情况，可以选择迁移到其他节点。

1. 创建分区迁移计划。

```bash theme={null}

echo '{
    "partitions": [
        {
            "topic": "reassign-topic",
            "partition": 0,
            "replicas": [
                2
            ]
        }
    ],
    "version": 1
}' > move.json

```

2. 执行分区迁移计划。

```bash theme={null}

docker run --network automq_net -v $(pwd)/move.json:/move.json automqinc/automq:1.5.5 /bin/bash -c "/opt/kafka/kafka/bin/kafka-reassign-partitions.sh --bootstrap-server  server1:9092,server2:9092,server3:9092 --reassignment-json-file /move.json --execute"


```

#### 查看是否迁移完成

```bash theme={null}

docker run --network automq_net -v $(pwd)/move.json:/move.json automqinc/automq:1.5.5 /bin/bash -c "/opt/kafka/kafka/bin/kafka-reassign-partitions.sh --bootstrap-server server1:9092,server2:9092,server3:9092 --reassignment-json-file /move.json --verify"

```
