Table Store的用戶端為調用者提供了一系列的方法,可以用來動作表、單行資料、多行資料等。

確定Endpoint

Endpoint是阿里雲Table Store服務在各個地區的網域名稱地址,目前支援下列形式。

樣本 描述
http://sun.cn-hangzhou.ots.aliyuncs.com HTTP 協議,公網網路訪問杭州地區的 sun 執行個體。
https://sun.cn-hangzhou.ots.aliyuncs.com HTTPS 協議,公網網路訪問杭州地區的 sun 執行個體。
说明
  • Table Store支援公網訪問,也支援私網地址。
  • 您可以登入Table Store控制台,進入執行個體詳情頁,執行個體訪問地址即是該執行個體的 Endpoint。

配置密鑰

要接入阿里雲Table Store服務,您需要擁有一個有效存取金鑰進行簽名認證。目前支援下面三種方式:

  • 主帳號的 AccessKeyId 和 AccessKeySecret。建立步驟如下:

    1. 在阿里雲官網註冊阿里雲帳號
    2. 登入AccessKey管理主控台建立 AccessKeyId 和 AccessKeySecret。
  • 被授予訪問Table Store許可權的子帳號的 AccessKeyId 和 AccesskeySecret。建立步驟如下:

    1. 使用主帳號前往存取控制 RAM,建立一個新的子帳號或者使用已經存在的子帳號。
    2. 使用主帳號授予子帳號訪問Table Store的許可權。
    3. 子帳號被授權後,就可以使用自己的 AccessKeyId 和 AccessKeySecret 訪問了。
  • 臨時訪問的 STS token。擷取步驟如下:

    1. 應用的伺服器通過訪問 RAM/STS 服務,擷取一個臨時的 AccesskeyId、AccesskeySecret 和 token,發送給使用方。
    2. 使用方使用上述臨時密鑰訪問Table Store服務。

建立Client

使用者使用Table Store的 SDK 時,必須首先構造一個 Client,通過調用這個 Client 的介面來訪問Table Store服務,Client 的介面與Table Store提供的 RESTful API 是一致的。

Client類型

Table Store C++ SDK 提供兩種 Client,SyncClient 和 AsyncClient,分別對應同步介面和非同步介面。

  • 同步介面:調用完畢後請求即執行完成,使用方便,使用者可以先使用同步介面瞭解Table Store的各種功能。

  • 非同步介面:相比同步介面更加靈活,如果對效能有一定需求,可以在使用非同步介面和使用多線程之間做一些取捨。

说明 不管是 SyncClient 還是 AsyncClient,都是安全執行緒的,且內部會自動管理線程和管理串連資源。不需要為每個線程建立一個Client,也不需要為每個請求建立一個Client,全域建立一個 Client 即可。

同步介面

  • 直接建立(即使用Table Store Endpoint建立Client)

    Endpoint ep("YourEndpoint", "YourInstance");
    Credential cr("AccessKeyId", "AccessKeySecret");
    ClientOptions opts;
    SyncClient* client = NULL;
    Optional<OTSError> res = SyncClient::create(client, ep, cr, opts);
    
    说明 建議您避免使用主帳號的AcceessKey來訪問Table Store,推薦使用臨時令牌或者子帳號的AccessKey。如果使用臨時令牌STS,上述代碼中的Credential對象需要修改為: Credential cr("AccessKeyId", "AccessKeySecret", "SecurityToken");

    ClientOptions中包含的配置項說明如下,您可以使用預設值,也可以自訂參數。

    mMaxConnections 最大串連數,同時也是最大並發請求數。SDK和Table Store服務端保持著長串連。每次有一個新的請求都會從閑置的串連裡隨機挑一個來發送請求。
    mConnectTimeout 連線逾時時間。考慮到DNS解析的時間,建議連線逾時時間不短於10秒。
    mRequestTimeout 請求逾時時間。
    mRetryStrategy 重試策略。預設的重試策略會在10秒內重試失敗的等冪請求。您可以定義自己的重試策略。
    mLogger 日誌記錄器。預設的日誌記錄器輸出到標準錯誤上。建議您定義自己的日誌記錄器。
    mActors 線程池。用於執行您回調的線程池。預設10根線程。
  • 從AsyncClient建立
    AsyncClient& async = ...;
    SyncClient* sync = SyncClient::create(async);

非同步介面

非同步介面Client的建立和使用,請參見非同步介面

多線程

支援多線程。使用多線程時,建議共用一個用戶端對象。