取得與套用限流相關的設定
GET /throttlescURL 範例
curl -X GET http://localhost:8001/throttlesJSON Response 範例
brokers: 所有上線的 Kafka 節點的限流量設定id: Kafka 節點編號follower: 特定 Kafka 節點的 replication 流入流量的限制(單位 bytes/sec),附註只有topics中有記錄到的對象, 其 replication 流量會受限制,如果此欄位不存在則代表此節點的 replication 流入流量沒有被限制。leader: 特定 Kafka 節點的 replication 流出流量的限制(單位 bytes/sec),附註只有topics中有記錄到的對象, 其 replication 流量會受限制,如果此欄位不存在則代表此節點的 replication 流出流量沒有被限制。
topics: 當前叢集中,被 replication 限流影響的 logsname: 套用 replication 限流的 topicpartition: 套用 replication 限流的 partitionbroker: 套用 replication 限流的 broker IDtype: 被套用限流的 log 身份,可以是leader或follower,如果沒有標記這個欄位,意味著二者皆是
{
"brokers": [
{ "id": 1001, "follower": 1000, "leader": 1000 },
{ "id": 1002, "follower": 1000, "leader": 1000 },
{ "id": 1003, "follower": 1000 },
{ "id": 1004 }
],
"topics": [
{ "name": "MyTopicA", "partition": 0, "broker": 1001 },
{ "name": "MyTopicB", "partition": 1, "broker": 1002, "type": "leader" },
{ "name": "MyTopicC", "partition": 2, "broker": 1003, "type": "follower" }
]
}POST /throttlescURL 範例
curl -X POST http://localhost:8001/throttles \
-H "Content-Type: application/json" \
-d '{
"brokers": [
{ "id": 1001, "follower": 1000, "leader": 1000 },
{ "id": 1002, "follower": 1000 }
],
"topics": [
{ "name": "MyTopicA" },
{ "name": "MyTopicB", "partition": 2 },
{ "name": "MyTopicC", "partition": 3, "broker": 1001 },
{ "name": "MyTopicD", "partition": 4, "broker": 1001, "type": "leader" }
]
}'JSON Request 格式
| 名稱 | 說明 | 預設值 |
|---|---|---|
| brokers | (選填) 敘述要更新的 Broker Throttle 設定 | 無 |
| topics | (選填) 敘述要更新的 Topic Throttle 設定 | 無 |
brokers 每個資料欄位
| 名稱 | 說明 | 預設值 |
|---|---|---|
| id | (必填) 欲更新節點的 id | 無 |
| follower | (選填) 特定 Kafka 節點的 replication 流入流量的限制(單位 bytes/sec),附註只有 topics 中有記錄到的對象,其 replication 流量會受限制,如果此欄位不存在則代表此節點的 replication 流入流量沒有被修改。 |
無 |
| leader | (選填) 特定 Kafka 節點的 replication 流出流量的限制(單位 bytes/sec),附註只有 topics 中有記錄到的對象,其 replication 流量會受限制,如果此欄位不存在則代表此節點的 replication 流入流量沒有被修改。 |
無 |
給定一個沒有指定 follower/leader 的輸入不會使任何資訊被修改,如:{ "id": 1002 }。
topics 每個資料欄位
| 名稱 | 說明 | 預設值 |
|---|---|---|
| name | (選填) 要套用 repliaction throttle 的 topic 名稱 | 所有 topics |
| partition | (選填) 要套用 replication throttle 的 partition 編號,如果沒有指定,所有既有 partition 都會被套用 | 無 |
| broker | (選填) 要套用 replication throttle 的 replica (所在之 broker),如果沒有指定,所有既有的 replicas 都會被套用 | 無 |
| type | (選填) 要套用 replication throttle 的 replica 身份,此值可以是 leader 或是 follower,如果沒有指定,則二者都會被套用 |
無 |
topic 描述格式只支援 name, name, partition, name, partition, broker, name, partition, broker, type 這四種 key 的組合,目前此 API 不支援其他種類的組合,比如 name, type。當給與這類型的組合,API 會回傳錯誤。
注意:topics 欄位中如果有重複的描述,那麼該些資訊會彼此覆蓋,順序不一定
DELETE /throttles
cURL 範例
-
# 移除與 TopicA 相關的所有 replication throttle curl -X DELETE "http://localhost:8001/throttles?topic=MyTopicA"
-
# 移除與 TopicA/partition 3 相關的所有 replication throttle curl -X DELETE "http://localhost:8001/throttles?topic=MyTopicA&partition=3"
-
# 移除與 TopicA/partition 3/replica at broker 4 相關的所有 replication throttle curl -X DELETE "http://localhost:8001/throttles?topic=MyTopicA&partition=3&replica=4"
-
# 移除 TopicA/partition 3/replica at broker 4 的 leader replication throttle curl -X DELETE "http://localhost:8001/throttles?topic=MyTopicA&partition=3&replica=4&type=leader"
-
# 移除編號 1001 節點的輸入流量限流 curl -X DELETE "http://localhost:8001/throttles?broker=1001&type=follower"
-
# 移除編號 1001 節點的輸出流量限流 curl -X DELETE "http://localhost:8001/throttles?broker=1001&type=leader"
-
# 移除編號 1001 節點的輸出和輸入流量限流 curl -X DELETE "http://localhost:8001/throttles?broker=1001&type=follower+leader"