日本熟妇hd丰满老熟妇,中文字幕一区二区三区在线不卡 ,亚洲成片在线观看,免费女同在线一区二区

文檔

Shard操作

更新時(shí)間:

Shard操作

Shard操作分為Shard水平擴(kuò)展和Shard分裂合并兩種模式,應(yīng)用場(chǎng)景如下

  1. Shard水平擴(kuò)展不允許合并Shard,分裂合并方式則允許

  2. 使用kafka方式消費(fèi)Topic必須開啟Shard水平擴(kuò)展

  3. 開啟Shard水平擴(kuò)展后,key range無法使用, 所有Shard的BeginHashKey與EndHashKey是一樣的,無法按HashKey和PartitionKey方式寫入數(shù)據(jù),需要自定義在應(yīng)用層hash取模,并且需要注意擴(kuò)容導(dǎo)致的寫入shard發(fā)生變化

Shard水平擴(kuò)展模式

DataHub支持Topic Shard水平擴(kuò)展,創(chuàng)建Topic時(shí)開啟Shard擴(kuò)展模式即可

步驟一

開啟Shard擴(kuò)展模式步驟一

步驟二

點(diǎn)擊圖標(biāo)(如下圖所示),修改Shard數(shù)量

b2.1-2

步驟三

查看水平擴(kuò)展后的Shard步驟三

shard分裂合并

DataHub 支持為Topic動(dòng)態(tài)擴(kuò)容/縮容,通過SplitShard/MergeShard來實(shí)現(xiàn)。

使用場(chǎng)景

DataHub具有服務(wù)彈性伸縮功能,用戶可根據(jù)實(shí)時(shí)的流量調(diào)整Shard數(shù)量,來應(yīng)對(duì)突發(fā)性的流量增長(zhǎng)或達(dá)到節(jié)約資源的目的。例如在雙11大促期間,大部分Topic數(shù)據(jù)流量會(huì)激增,平時(shí)的Shard數(shù)量可能完全無法滿足這樣的流量增長(zhǎng),此時(shí)可以對(duì)其中一些Shard進(jìn)行Split操作,一變二,二變四,最大可擴(kuò)容至256個(gè)Shard,按目前的流控限制足以達(dá)到1280MB/s的流量。在雙11大促后,流量下降,多余的Shard會(huì)占用沒有必要的quota,因此可以進(jìn)行Merge操作,每?jī)蓚€(gè)Shard合并為一個(gè),直到合適為止。

Shard屬性

可以通過ListShard接口獲取所有Shard的信息,每個(gè)Shard擁有如下屬性, 樣例:

{
    "ShardId": "string",
    "State": "string",
    "ClosedTime": uint64,
    "BeginHashKey": "string",
    "EndHashKey": "string",
    "ParentShardIds": [string,string,],
    "LeftShardId": "string",
    "RightShardId": "string"
}

SplitShard

指定一個(gè)128 bit的HashKey以及一個(gè)ShardID,通過SDK或者Console進(jìn)行操作.SplitShard操作會(huì)將指定的Shard分裂為兩個(gè)ChildShard,并且返回ChildShard的ID以及Key信息,同時(shí)Parent Shard會(huì)被置為CLOSED狀態(tài)。例如,Split之前存在如下一個(gè)Shard:

ShardId:0 Status:ACTIVE BeginHashKey:00000000000000000000000000000000
    EndHashKey:FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF

通過SDK進(jìn)行Split操作:

String shardId = "0";
SplitShardRequest req = new SplitShardRequest(projectName, topicName, shardId, "AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA");
SplitShardResult resp = client.splitShard(req);

最終將會(huì)變成如下3個(gè)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

指定兩個(gè)相鄰的ShardID,通過SDK或者Console進(jìn)行操作.MergeShard操作會(huì)將指定的兩個(gè)Shard合并為一個(gè)新的Shard,并且返回新Shard的ID以及Key信息,同時(shí)兩個(gè)ParentShard會(huì)被置為CLOSED狀態(tài)。例如,Merge之前存在如下兩個(gè)Shard:

ShardId:0 Status:ACTIVE BeginHashKey:00000000000000000000000000000000
                    EndHashKey:7FFFFFFFFFFFFFFF7FFFFFFFFFFFFFFF
ShardId:1 Status:ACTIVE BeginHashKey:7FFFFFFFFFFFFFFF7FFFFFFFFFFFFFFF
                    EndHashKey:FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF

通過SDK進(jìn)行Merge操作:

String shardId = "0";
String adjacentShardId = "1";
MergeShardRequest req = new MergeShardRequest(projectName, topicName, shardId, adjacentShardId);
MergeShardResult resp = client.mergeShard(req);

最終將會(huì)變成如下3個(gè)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

注意事項(xiàng)

當(dāng)Shard進(jìn)行Merge/Split后會(huì)被置為CLOSED狀態(tài),該狀態(tài)可以繼續(xù)消費(fèi)讀取數(shù)據(jù),但是不可寫入,也不可再次進(jìn)行Merge/Split操作,當(dāng)?shù)竭_(dá)Topic的lifecycle后該Shard會(huì)被回收。如果配置了Connector,對(duì)應(yīng)任務(wù)會(huì)在復(fù)制完該Shard數(shù)據(jù)后自動(dòng)掛起,待該Shard回收后會(huì)自動(dòng)刪除任務(wù)。Topic在進(jìn)行Merge/Split后新的Shard需要等待變?yōu)锳CTIVE狀態(tài)后方可正常使用,通常不會(huì)超過5秒。