このトピックでは、Tablestore Java SDK を使用して、グローバルテーブルに 1 つ以上の配信ロケーションを追加する方法について説明します。
注意事項
バインド操作が成功すると、システムは非同期で新しいレプリカをバインドし、データを同期します。現在のグローバルテーブルのステータスを確認するには、`DescribeGlobalTable` を呼び出してください。応答で返されるステータスが `active` の場合、新しいグローバルテーブルレプリカのバインドが正常に完了しています。
前提条件
クライアントの初期化を行ってください。
メソッドの説明
public BindGlobalTableResponse bindGlobalTable(BindGlobalTableRequest request) throws TableStoreException, ClientException例
private static void bindGlobalTableExample(SyncClient client) {
// リクエストの構築
BindGlobalTableRequest request = new BindGlobalTableRequest(
// グローバルテーブル ID
"gt-ee1b54db-f5d9-43f3-ad36-ec44********",
// グローバルテーブル名
"my-global-table"
);
// Placement リストの構築(少なくとも 1 つのレプリカ構成が必要)
List<GlobalTableTypes.Placement> placements = new ArrayList<>();
// 例:中国 (杭州) リージョンにレプリカを追加
GlobalTableTypes.Placement hangzhouReplica = new GlobalTableTypes.Placement(
// レプリカのリージョン ID
"cn-hangzhou",
// レプリカのインスタンス名
"instance-replica-hz",
// プライマリセカンダリモードでは、レプリカテーブルは書き込み不可(デフォルト値は false)
// マルチアクティブモードでは、レプリカテーブルを読み取り/書き込み可能(true)または読み取り専用(false)に設定できます
false
);
// 例:中国 (上海) リージョンにレプリカを追加
GlobalTableTypes.Placement shanghaiReplica = new GlobalTableTypes.Placement(
// レプリカのリージョン ID
"cn-shanghai",
// レプリカのインスタンス名
"instance-replica-sh",
// プライマリセカンダリモードでは、レプリカテーブルは書き込み不可(デフォルト値は false)
// マルチアクティブモードでは、レプリカテーブルを読み取り/書き込み可能(true)または読み取り専用(false)に設定できます
true
);
placements.add(hangzhouReplica);
placements.add(shanghaiReplica);
request.setPlacements(placements);
// リクエストの送信
BindGlobalTableResponse response = client.bindGlobalTable(request);
System.out.println("バインドが成功しました。リクエスト ID:" + response.getRequestId());
}