862
魔獸
擴容縮容Merge/Split__高級特性_DataHub實時數據通道_大數據計算服務-阿裏雲
DataHub 支持為Topic動態擴容/縮容,通過SplitShard/MergeShard來實現。
使用場景
Datahub具有服務彈性伸縮功能,用戶可根據實時的流量調整Shard數量,來應對突發性的流量增長或達到節約資源的目的。
例如在雙11大促期間,大部分Topic數據流量會激增,平時的Shard數量可能完全無法滿足這樣的流量增長,此時可以對其中一些Shard進行Split操作,一變二,二變四,最大可擴容至256個Shard,按目前的流控限製足以達到256MB/s的流量。
在雙11大促後,流量下降,多餘的Shard會占用沒有必要的quota,因此可以進行Merge操作,每兩個Shard合並為一個,直到合適為止。
Shard屬性
可以通過ListShard接口獲取所有Shard的信息,每個Shard擁有如下屬性, 樣例:
{
"ShardId": "string",
"State": "string",
"ClosedTime": uint64,
"BeginHashKey": "string",
"EndHashKey": "string",
"ParentShardIds": [string,string,],
"LeftShardId": "string",
"RightShardId": "string"
}
SplitShard
指定一個128 bit的HashKey以及一個ShardID,通過SDK或者Console進行操作.
SplitShard操作會將指定的Shard分裂為兩個ChildShard,並且返回ChildShard的Id以及Key信息,同時Parent Shard會被置為CLOSED狀態。
例如,Split之前存在如下一個Shard:
ShardId:0 Status:ACTIVE BeginHashKey:00000000000000000000000000000000 EndHashKey:FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
通過SDK進行Split操作:
String shardId = "0";
SplitShardRequest req = new SplitShardRequest(projectName, topicName, shardId, "AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA");
SplitShardResult resp = client.splitShard(req);
最終將會變成如下3個Shard:
ShardId:0 Status:CLOSED BeginHashKey:00000000000000000000000000000000 EndHashKey:FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
ShardId:1 Status:ACTIVE BeginHashKey:00000000000000000000000000000000 EndHashKey:AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
ShardId:2 Status:ACTIVE BeginHashKey:AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA EndHashKey:FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
MergeShard
指定兩個相鄰的ShardID,通過SDK或者Console進行操作.
MergeShard操作會將指定的兩個Shard合並為一個新的Shard,並且返回新Shard的ID以及Key信息,同時兩個ParentShard會被置為為CLOSED狀態。
例如,Merge之前存在如下兩個Shard:
ShardId:0 Status:ACTIVE BeginHashKey:00000000000000000000000000000000 EndHashKey:7FFFFFFFFFFFFFFF7FFFFFFFFFFFFFFF
ShardId:1 Status:ACTIVE BeginHashKey:7FFFFFFFFFFFFFFF7FFFFFFFFFFFFFFF EndHashKey:FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
通過SDK進行Merge操作:
String shardId = "0";
String adjacentShardId = "1";
MergeShardRequest req = new MergeShardRequest(projectName, topicName, shardId, adjacentShardId);
MergeShardResult resp = client.mergeShard(req);
最終將會變成如下3個Shard:
ShardId:0 Status:CLOSED BeginHashKey:00000000000000000000000000000000 EndHashKey:7FFFFFFFFFFFFFFF7FFFFFFFFFFFFFFF
ShardId:1 Status:CLOSED BeginHashKey:7FFFFFFFFFFFFFFF7FFFFFFFFFFFFFFF EndHashKey:FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
ShardId:2 Status:ACTIVE BeginHashKey:00000000000000000000000000000000 EndHashKey:FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
注意事項
當Shard進行Merge/Split後會被置為CLOSED狀態,該狀態可以繼續消費讀取數據,但是不可寫入,也不可再次進行Merge/Split操作,當到達Topic的lifecycle後該Shard會被回收。
如果配置了Connector,對應任務會在複製完該Shard數據後自動掛起,待該Shard回收後會自動刪除任務。
Topic在進行Merge/Split後新的Shard需要等待變為ACTIVE狀態後方可正常使用,通常不會超過5秒。
最後更新:2016-11-23 18:01:58
上一篇:
數據歸檔MaxCompute__高級特性_DataHub實時數據通道_大數據計算服務-阿裏雲
下一篇:
多方式寫入__高級特性_DataHub實時數據通道_大數據計算服務-阿裏雲
GetGroup__組管理接口_RAM API文檔_訪問控製-阿裏雲
雲服務器 ECS 網絡和安全性之安全組
服務打包__線上服務發布_開發者指南_企業級分布式應用服務 EDAS-阿裏雲
擴容__購買磁盤_購買指南_雲服務器 ECS-阿裏雲
新增水印模版__水印模板接口_API使用手冊_媒體轉碼-阿裏雲
雲服務器 ECS 快照(Snapshot)技術優勢對比
按量計費__計費說明_日誌服務-阿裏雲
AccessPointSetType__數據類型_API 參考_雲服務器 ECS-阿裏雲
任務__基本概念_基本介紹_大數據計算服務-阿裏雲
LogHub-監控__Getting-Started_日誌服務-阿裏雲
相關內容
常見錯誤說明__附錄_大數據計算服務-阿裏雲
發送短信接口__API使用手冊_短信服務-阿裏雲
接口文檔__Android_安全組件教程_移動安全-阿裏雲
運營商錯誤碼(聯通)__常見問題_短信服務-阿裏雲
設置短信模板__使用手冊_短信服務-阿裏雲
OSS 權限問題及排查__常見錯誤及排除_最佳實踐_對象存儲 OSS-阿裏雲
消息通知__操作指南_批量計算-阿裏雲
設備端快速接入(MQTT)__快速開始_阿裏雲物聯網套件-阿裏雲
查詢API調用流量數據__API管理相關接口_API_API 網關-阿裏雲
使用STS訪問__JavaScript-SDK_SDK 參考_對象存儲 OSS-阿裏雲