
# Kafka实例开始分区平衡任务
#### 功能介绍
该接口用于向Kafka实例提交分区平衡任务或计算分区平衡预估时间。
![](https://support.huaweicloud.com/api-kafka/public_sys-resources/note_3.0-zh-cn.png)
当前页面API为历史版本API，未来可能停止维护。请使用[Kafka实例开始分区平衡任务](https://support.huaweicloud.com/api-kafka/CreateKafkaReassignmentTask.html)。
#### URI
POST /v2/kafka/{project_id}/instances/{instance_id}/reassign
表1路径参数 
| 参数          | 是否必选 | 参数类型   | 描述                                                                                         |
|:---|:---|:---|:---|
| project_id  | 是    | String | 项目ID，获取方式请参见[获取项目ID](https://support.huaweicloud.com/api-kafka/kafka-api-0036212547.html)。 |
| instance_id | 是    | String | 实例ID。                                                                                      |
   
#### 请求参数
表2请求Body参数 
| 参数            | 是否必选 | 参数类型                                                                                                     | 描述                                                                                     |
|:---|:---|:---|:---|
| reassignments | 是    | Array of [PartitionReassignEntity] objects | 分区平衡分配方案。                                                                              |
| throttle      | 否    | Integer                                                                                                  | 分区平衡门限值。                                                                               |
| is_schedule   | 否    | Boolean                                                                                                  | 是否作为定时任务执行。若非定时执行，则is_schedule和execute_at字段可为空；若为定时执行，is_schedule为true，execute_at字段非空。 |
| execute_at    | 否    | Long                                                                                                     | 定时时间，格式为Unix时间戳，单位为毫秒                                                                  |
| time_estimate | 否    | Boolean                                                                                                  | 设为true表示执行时间预估任务，false为执行分区平衡任务。                                                       |
   
 表3PartitionReassignEntity 
| 参数                 | 是否必选 | 参数类型                                                                                     | 描述                              |
|:---|:---|:---|:---|
| topic              | 是    | String                                                                                   | topic名称                         |
| brokers            | 否    | Array of integers                                                                        | 分区平衡到的broker列表，自动生成分配方案时需指定该参数。 |
| replication_factor | 否    | Integer                                                                                  | 副本因子，自动生成分配方案时可指定。              |
| assignment         | 否    | Array of [TopicAssignment] objects | 手动指定的分配方案。brokers参数与该参数不能同时为空。  |
   
 表4TopicAssignment 
| 参数                | 是否必选 | 参数类型              | 描述                    |
|:---|:---|:---|:---|
| partition         | 否    | Integer           | 手动指定分配方案时的分区号。        |
| partition_brokers | 否    | Array of integers | 手动指定某个分区将要分配的broker列表 |
   
#### 响应参数
**状态码： 200**
表5响应Body参数 
| 参数                | 参数类型    | 描述                                         |
|:---|:---|:---|
| job_id            | String  | 任务ID（当执行分区平衡任务时仅返回job_id）。                 |
| reassignment_time | Integer | 预估时间，单位为秒（当执行预估时间任务时仅返回reassignment_time）。 |
   
#### 请求示例
```
POST https://{endpoint}/v2/kafka/{project_id}/instances/{instance_id}/reassign
{
  "reassignments" : [ {
    "topic" : "topic-1513476102",
    "brokers" : [ 0, 1, 2 ],
    "replication_factor" : 3,
    "assignment" : [ {
      "partition" : 0,
      "partition_brokers" : [ 0, 1, 2 ]
    }, {
      "partition" : 1,
      "partition_brokers" : [ 1, 2, 0 ]
    }, {
      "partition" : 2,
      "partition_brokers" : [ 2, 0, 1 ]
    } ]
  }, {
    "topic" : "topic-1513558717",
    "brokers" : [ 0, 1, 4 ],
    "replication_factor" : 3,
    "assignment" : [ {
      "partition" : 0,
      "partition_brokers" : [ 0, 1, 2 ]
    }, {
      "partition" : 1,
      "partition_brokers" : [ 1, 2, 0 ]
    }, {
      "partition" : 2,
      "partition_brokers" : [ 2, 0, 1 ]
    } ]
  } ],
  "throttle" : 10000000,
  "time_estimate" : false
}
```
#### 响应示例
**状态码： 200**
提交分区平衡任务成功（若为预估时间任务则返回预估时间）。
```
{
  "job_id" : "8a2c259182ab0e9d0182ab1882560009",
  "reassignment_time" : 10
}
```
#### 状态码
| 状态码 | 描述                           |
|:---|:---|
| 200 | 提交分区平衡任务成功（若为预估时间任务则返回预估时间）。 |
   
#### 错误码
请参见[错误码](https://support.huaweicloud.com/api-kafka/ErrorCode.html)。
