複製功能設定範例

本頁面說明 Cloud BigTable 複製功能啟用後的常見用途,接著會介紹可用於支援這些用途的設定:

本頁面也會說明如何判斷未列於此處的用途應使用哪些設定

閱讀本頁面之前,請先熟悉 Cloud BigTable 複製功能總覽的內容。

區隔批次分析工作負載與其他應用程式

當您使用單一叢集執行需要多次大量讀取操作的批次分析工作,以及會混合執行讀取與寫入操作的應用程式時,龐大的批次工作會拖慢應用程式使用者的作業。複製功能可讓您將應用程式設定檔和單叢集轉送功能搭配使用,把批次分析工作和應用程式流量轉送至其他叢集,避免批次工作對應用程式的使用者造成影響。

區隔兩個工作負載的方式如下:

  1. 新建具有 2 個叢集的執行個體,或將第二個叢集新增至現有執行個體。

    請遵循標準 CPU 使用率建議進行這項設定。

  2. 建立 2 個應用程式設定檔,並分別命名為 live-trafficbatch-analytics

    如果叢集 ID 是 cluster-acluster-b,則 live-traffic 應用程式設定檔會將要求轉送到 cluster-a,而 batch-analytics 應用程式設定檔會將要求轉送到 cluster-b。這樣的設定可為所有使用這些應用程式設定檔的應用程式提供讀寫一致性

    您可以視需要在 live-traffic 應用程式設定檔中啟用單一資料列交易。假如您只使用這個設定檔進行讀取,則不需要在 batch-analytics 應用程式設定檔中啟用單一資料列交易。

  3. 使用 live-traffic 應用程式設定檔,執行即時流量工作負載。

  4. 在執行即時流量工作負載的過程中,使用 batch-analytics 應用程式設定檔執行唯讀批次工作負載。

  5. 對執行個體的叢集監控 CPU 使用率,並視需要新增節點至叢集。

  6. 使用自選工具監控用戶端的延遲時間。如果您使用 Java 適用的 HBase 用戶端,則可使用其用戶端指標監控延遲。

如何從較大的工作負載中區隔兩個較小的工作負載:

  1. 新建具有 3 個叢集的執行個體,或新增叢集至現有執行個體,直到執行個體中有 3 個叢集。

    請遵循標準 CPU 使用率建議進行這項設定。

    這些步驟假設您的叢集使用名為 cluster-acluster-bcluster-c 的 ID。

    如果 cluster-acluster-b 用於同一個應用程式,請使用相同的節點數量。在 cluster-c 中使用較多節點數量以支援較大的工作負載。

  2. 建立下列應用程式設定檔:

    • live-traffic-app-a:從您的應用程式到 cluster-a 的單叢集轉送作業。
    • live-traffic-app-b:從您的應用程式到 cluster-b 的單叢集轉送作業。
    • batch-analytics:從批次分析工作到 cluster-c 的單叢集轉送作業。
  3. 使用即時流量應用程式設定檔,執行即時流量工作負載。

  4. 在執行即時流量工作負載的過程中,使用 batch-analytics 應用程式設定檔執行唯讀批次工作負載。

  5. 對執行個體的叢集監控 CPU 使用率,並視需要新增節點至叢集。

  6. 使用自選工具監控用戶端的延遲時間。如果您使用 Java 適用的 HBase 用戶端,則可使用其用戶端指標監控延遲。

提升可用性

如果執行個體只有 1 個叢集,資料的耐用性和可用性將受限於該叢集所在的區域。複製功能會將資料的複本分別儲存在多個區域或地區,並視需要自動在叢集之間進行容錯移轉,進而改善耐用性和可用性。

如要針對這項用途設定執行個體,請建立新的應用程式設定檔 (須使用多叢集轉送),或是將預設的應用程式設定檔更新為使用多叢集轉送。這樣的設定可以提供最終一致性。使用多叢集轉送時,由於單一資料列交易會導致資料衝突,因此您將無法啟用單一資料列交易

提升可用性的設定包括:

  • 兩個叢集位於不同區域的相同地區中: 這個選項提供高可用性和容錯移轉功能,而不會產生跨地區複製費用。只要資料複製目標的任何區域為可用,即可使用複製 Cloud BigTable 執行個體中的資料。

    範例設定:

    • cluster-a 位於雪梨的 australia-southeast1-a 區域
    • cluster-b 位於雪梨的 australia-southeast1-b 區域

    請遵循標準 CPU 使用率建議進行這項設定。

  • 兩個叢集位於不同地區: 這項多地區設定提供高可用性 (如上述的多區域設定),不過即使您無法連線至其中一個地區,也可以取得資料。

    系統會依據複製地區之間的寫入作業向您收取費用。

    範例設定:

    • cluster-a 位於東京的 asia-northeast1-c 區域
    • cluster-b 位於香港的 asia-east2-b 區域

    請遵循標準 CPU 使用率建議進行這項設定。

  • 兩個叢集位於地區 A,第三個叢集位於地區 B:即使在無法連線至其中一個地區的情況下,這個選項讓您也能取得資料,並在地區 A 中提供額外容量。

    系統會依據複製地區之間的寫入作業向您收取費用。如果您寫入至地區 A,由於地區 A 中只有 1 個叢集,因此系統會向您收取一次費用;如果您寫入至地區 B,由於地區 A 中有 2 個叢集,因此系統會向您收取兩次費用。

    範例設定:

    • cluster-a 位於比利時的 europe-west1-b 區域
    • cluster-b 位於比利時的 europe-west1-d 區域
    • cluster-c 位於芬蘭的 europe-north1-c 區域

    在具有 2 個叢集的地區中,從 35% 的 CPU 使用率目標開始,在另一個地區中從 70% 的目標開始。監控執行個體的叢集,並視需要調整節點數量,讓每個叢集有足夠的資源來處理容錯移轉。

您可以模擬此用途的容錯移轉來測試您的應用程式:

  1. 使用應用程式設定檔搭配多叢集轉送,執行測試工作負載。

  2. 使用 Google Cloud Platform 主控台監控執行個體的叢集,並確認叢集正在處理收到的要求。

  3. 刪除其中一個叢集,模擬服務中斷的情況。

    這項變更也會刪除這個叢集所儲存的資料複本。

  4. 繼續監控延遲時間和錯誤率。如果其餘叢集具有足夠的 CPU 資源,就能處理收到的要求。

  5. 新增叢集至執行個體,並繼續監控執行個體。資料應該會開始複製到這個新叢集。

提供近乎即時的備份功能

在某些情況下 (例如,您無法負擔讀取過時資料的成本時),您總是需要將要求轉送到單一叢集。然而,您仍然可以用一個叢集處理要求,並讓另一個叢集保持近乎即時的備份。如果提供服務的叢集無法使用,您可以手動容錯移轉到備份叢集,讓停機時間降到最短。

如要針對這項用途設定執行個體,請建立應用程式設定檔 (須使用單叢集轉送),或是將預設的應用程式設定檔更新為使用單叢集轉送。您在應用程式設定檔中指定的叢集將會處理收到的要求。另一個叢集會做為備用叢集使用,以供進行容錯移轉時所需。這樣的安排有時稱為主被動配置,可以提供同步一致性和讀寫一致性。您可以視需要在應用程式設定檔中啟用單一資料列交易

請遵循標準 CPU 使用率建議進行這項設定。

如何實作這項設定:

  1. 使用應用程式設定檔搭配單叢集轉送,執行工作負載。

  2. 使用 Google Cloud Platform 主控台監控執行個體的叢集,並確認只有 1 個叢集在處理收到的要求。

    另一個叢集會繼續使用 CPU 資源執行複製功能及其他維護工作。

  3. 更新應用程式設定檔,使其指向執行個體中的第二個叢集。

    您會收到有關失去讀寫一致性的警告訊息,這也代表已失去同步一致性。

    如果已啟用單一資料列交易,也會收到有關資料可能遺失的警告。當容錯移轉正在發生時,如果您傳送相衝突的寫入作業,資料將會遺失。

  4. 繼續監控您的執行個體。您應該會看到第二個叢集正在處理收到的要求。

保持高可用性和地區彈性

假設您在某一洲的兩個不同地區中有集中的客戶群。您希望透過 Cloud BigTable 叢集,在儘可能接近每個集中客戶群的位置提供服務。您希望資料在每個地區內都具有高可用性,如有一或多個叢集無法使用,您可能會想使用容錯移轉選項。

以這個用途來說,您可以建立分別在地區 A 和地區 B 各有 2 個叢集的執行個體。即使您無法連線至 GCP 地區,這項設定也能提供高可用性。此外,這項設定還能提供地區彈性,因為即使某個區域無法使用,該區域的地區中還有另一個叢集可供使用。

您可以根據業務需求,針對這項用途選擇使用多叢集轉送或單叢集轉送。

如何針對這項用途設定執行個體:

  1. 建立具有 4 個叢集的 Cloud BigTable 執行個體:2 個叢集位於地區 A,2 個叢集位於地區 B。相同地區中的叢集必須位於不同區域。

    範例設定:

    • cluster-a 位於孟買的 asia-south1-a 區域
    • cluster-b 位於孟買的 asia-south1-c 區域
    • cluster-c 位於東京的 asia-northeast1-a 區域
    • cluster-d 位於東京的 asia-northeast1-a 區域
  2. 將應用程式伺服器放置在接近每個地區的位置。

您可以根據業務需求,針對這項用途選擇使用多叢集轉送或單叢集轉送。如果您使用多叢集轉送,Cloud BigTable 會自動處理容錯移轉。如果您使用單叢集轉送,則必須自行判斷何時開始容錯移轉至不同的叢集。

多叢集轉送選項

如果您正在實作此用途,且希望當您的應用程式無法連線至一個地區時,Cloud BigTable 會自動容錯移轉至另一個地區,請使用多叢集轉送。

如要實作這項設定,請建立新的應用程式設定檔 (須使用多叢集轉送),或是將預設的應用程式設定檔更新為使用多叢集轉送。

這樣的設定可以提供最終一致性。如果某個地區無法使用,Cloud BigTable 要求會自動傳送至另一個地區。發生這種情況時,您必須為傳送至另一個地區而支付網路流量的費用,且您的應用程式可能會因距離較遠而出現較長的延遲時間。

每個執行個體只能使用一個採用多叢集轉送的應用程式設定檔,無法使用同時採用多叢集轉送和單叢集轉送的設定檔。執行個體必須使用其中一種轉送方式。

初始設定執行個體時,請盡量為每個叢集設定低於 35% 的 CPU 使用率。如果發生容錯移轉,這個目標值可確保每個叢集能夠處理通常由該地區中其他叢集處理的流量。您可能需要根據流量和使用模式來調整這個目標值。

您可以模擬此用途的容錯移轉來測試您的應用程式:

  1. 執行測試工作負載。

  2. 使用 GCP 主控台監控執行個體的叢集,並確認所有 4 個叢集正在處理收到的要求。

  3. 刪除地區 A 的其中一個叢集,模擬無法連線至區域的情況。

    這項變更也會刪除這個叢集所儲存的資料複本。

  4. 繼續監控其餘叢集的延遲時間和錯誤率。

    如果叢集具有足夠的 CPU 資源,就能處理收到的要求。

  5. 新增叢集至地區 A 的執行個體,並繼續監控執行個體。

    系統應該會開始將資料複製到這個新叢集。

  6. 刪除地區 A 的兩個叢集,模擬無法連線至地區的情況。

    這項變更會刪除這些叢集所儲存的資料複本。

  7. 繼續監控其餘叢集的延遲時間和錯誤率。

    如果叢集具有足夠的 CPU 資源,就能處理原本傳送給另一個地區的要求。如果叢集的資源不足,您可能需要調整節點數量。

單叢集轉送選項

無法使用某個區域或地區時,如果您不想讓 Cloud BigTable 叢集自動容錯移轉,您可以針對此用途使用單叢集轉送。如果 Cloud BigTable 開始轉送遙遠地區之間的流量,而您想要管理因此產生的費用和延遲時間,或是您偏好自行判斷或根據業務規則決定是否進行容錯移轉,建議您使用這個選項。

如要實作這項設定,請建立 4 個應用程式設定檔 (需使用單叢集轉送)。每個應用程式設定檔會轉送至 Cloud BigTable 執行個體中的其他叢集。

請遵循標準 CPU 使用率建議進行這項設定。

使用此設定時,如有一或多個叢集無法使用,您可以執行手動容錯移轉,或選擇讓該區域中的資料暫時無法使用,直到該區域再次恢復可用。

將資料儲存在距離使用者較近的位置

如果您的使用者遍布全球,您可以在距離使用者較近的位置執行應用程式,並將資料放置在儘可能接近應用程式的位置,藉此減少延遲。透過 Cloud BigTable,您可以在多個 GCP 地區中建立包含叢集的執行個體,您的資料會自動複製到每個地區。

以這個用途來說,請使用應用程式設定檔搭配單叢集轉送。由於叢集之間的距離,多叢集轉送不符合這個用途的需求。如果某個叢集無法使用,其多叢集應用程式設定檔會自動轉送遠距離的流量,您的應用程式可能會發生無法接受的延遲情況,並產生未預期的額外網路費用。

如何針對這項用途設定執行個體:

  1. 在三個不同的地理地區中建立包含叢集的執行個體,例如美國、歐洲和亞洲。

    請遵循標準 CPU 使用率建議進行這項設定。

  2. 將應用程式伺服器放置在接近每個地區的位置。

  3. 建立類似以下的應用程式設定檔:

    • clickstream-us:單叢集轉送至位於美國的叢集
    • clickstream-eu:單叢集轉送至位於歐洲的叢集
    • clickstream-asia:單叢集轉送至位於亞洲的叢集

在這項設定中,您的應用程式會將應用程式設定檔用於最接近的叢集。寫入任何叢集的內容會自動複製到另外兩個叢集。

其他用途

如果本頁面沒有說明您需要的用途,請運用下列問題來幫助您決定該如何設定應用程式設定檔:

  • 您是否需要執行單一資料列交易像是讀取/修改/寫入作業 (包含遞增和附加) 及檢查/異動作業 (也稱為有條件的變動或有條件的寫入)?

    如果答案為肯定,那麼您的應用程式設定檔必須使用單叢集轉送以免資料遺失,而且您必須手動處理容錯移轉

  • 您希望 Cloud Bigtable 自動處理容錯移轉嗎?

    如果答案為肯定,您的應用程式設定檔就必須使用多叢集轉送。如果某個叢集無法處理收到的要求,Cloud BigTable 會自動容錯移轉至另一個叢集。進一步瞭解自動容錯移轉

    為防止資料遺失,您不能在啟用單一資料列交易的同時又使用多叢集轉送。 瞭解詳情

  • 您是否要維持一個備用或備援叢集,以備主要叢集無法使用時之需?

    如果答案為肯定,請在您的應用程式設定檔中使用單叢集轉送,並在必要時手動容錯移轉至備用叢集

    這樣的設定也可以讓您在必要時使用單一資料列交易

  • 是否要將不同類型的流量傳送到不同的叢集?

    如果答案為肯定,請在您的應用程式設定檔中使用單叢集轉送,並將每種類型的流量導向至該設定檔的叢集。如有需要,您可以手動在叢集之間進行容錯移轉

    您可以視需要在應用程式設定檔中啟用單一資料列交易

後續步驟

本頁內容對您是否有任何幫助?請提供意見:

傳送您對下列選項的寶貴意見...

這個網頁
Cloud Bigtable 說明文件