Initiating Partition Reassigning for a Kafka Instance¶
Function¶
This API is used to submit a partition rebalancing task to a Kafka instance or calculate estimated rebalancing time.
URI¶
POST /v2/kafka/{project_id}/instances/{instance_id}/reassign
Parameter | Mandatory | Type | Description |
---|---|---|---|
project_id | Yes | String | Project ID. For details about how to obtain it, see Obtaining a Project ID. |
instance_id | Yes | String | Instance ID. |
Request Parameters¶
Parameter | Mandatory | Type | Description |
---|---|---|---|
reassignments | Yes | Array of PartitionReassignEntity objects | Reassignment plan. |
throttle | No | Integer | Reassignment threshold. |
is_schedule | No | Boolean | Indicates whether the task is scheduled. If no, is_schedule and execute_at can be left blank. If yes, is_schedule is true and execute_at must be specified. |
execute_at | No | Long | Schedule time. The value is a UNIX timestamp, in ms. |
time_estimate | No | Boolean | Set true to perform time estimation tasks and false to perform rebalancing tasks. |
Parameter | Mandatory | Type | Description |
---|---|---|---|
topic | Yes | String | Topic name. |
brokers | No | Array of integers | List of brokers to which partitions are reassigned. This parameter is mandatory in automatic assignment. |
replication_factor | No | Integer | Replication factor, which can be specified in automatic assignment. |
assignment | No | Array of TopicAssignment objects | Manually specified assignment plan. The brokers parameter and this parameter cannot be empty at the same time. |
Parameter | Mandatory | Type | Description |
---|---|---|---|
partition | No | Integer | Partition number in manual assignment. |
partition_brokers | No | Array of integers | List of brokers to be assigned to a partition in manual assignment. |
Response Parameters¶
Status code: 200
Parameter | Type | Description |
---|---|---|
job_id | String | Task ID. Only job_id is returned for a rebalancing task. |
reassignment_time | Integer | Estimated time, in seconds. Only reassignment_time is returned for a time estimation task. |
Example Requests¶
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
}
Example Responses¶
Status code: 200
Rebalancing task submitted or the estimated time is returned.
{
"job_id" : "8a2c259182ab0e9d0182ab1882560009",
"reassignment_time" : 10
}
Status Codes¶
Status Code | Description |
---|---|
200 | Rebalancing task submitted or the estimated time is returned. |
Error Codes¶
See Error Codes.