排解 Bigtable 訂閱項目問題

本文提供 Bigtable 訂閱項目的疑難排解提示。

無法建立或更新訂閱項目

嘗試建立或更新 Bigtable 訂閱項目時,可能會遇到下列錯誤。

權限遭拒錯誤

如果 Bigtable 執行個體或資料表不存在,或是設定的服務帳戶無法存取任一項目,您會收到權限遭拒錯誤。

如何解決這個問題:

缺少資料欄系列

如果 Bigtable 資料表沒有正確的資料欄系列,您會收到 INCOMPATIBLE_SCHEMA 錯誤。

這項錯誤可能是由下列問題所致:

  • 資料表沒有 data 資料欄系列。
  • 中繼資料寫入已啟用,且資料表沒有 pubsub_metadata 資料欄系列。

如要解決這個問題,請建立必要的資料欄系列。詳情請參閱「新增資料欄系列」。

訂閱項目未寫入資料

如果 Bigtable 訂閱項目未寫入資料,請執行 gcloud beta pubsub subscriptions describe 指令,檢查訂閱項目狀態:

gcloud beta pubsub subscriptions describe SUBSCRIPTION_ID

SUBSCRIPTION_ID 替換為訂閱方案名稱。

bigtableConfig.state 欄位包含狀態。如果訂閱項目已準備好將訊息寫入 Bigtable,狀態會是 ACTIVE。否則,設定有誤,導致訂閱項目無法將訊息寫入 Bigtable 資料表。

設定問題可能包括:

訂閱項目處於錯誤狀態時,不會將訊息寫入 Bigtable 資料表。訊息會保留在訂閱項目的待處理事項中,不會傳送至dead-letter 主題 (如有設定)。未確認的訊息會保留在訂閱項目的訊息保留時間內。

問題解決後,訂閱項目最終會恢復正常狀態。

積壓工作增加

如果訂閱狀態為 ACTIVE,但訂閱項目中的訊息積壓量不斷增加,或訊息傳送到訂閱項目的無法投遞郵件主題,請找出下列問題。

發布速率超過容量

如果發布至主題的訊息速率超過 Bigtable 叢集的容量,訂閱項目中可能會累積待處理的訊息。

訊息排序功能會稍微降低系統效能。使用 Bigtable 訂閱項目時,如果啟用排序功能,可能會導致處理量降低或訊息傳送延遲時間變長。如果啟用排序功能後發生效能問題,請務必使用足夠精細的排序鍵,避免使用熱鍵,或修改應用程式,使其不需要排序。詳情請參閱「使用排序訊息時的注意事項」。

監控叢集效能,並考慮增加叢集大小。詳情請參閱 Bigtable 說明文件中的下列主題:

跨區域流量

如果應用程式發布至主題的地區與 Bigtable 叢集不同,則每則訊息的發布時間會比從相同地區發布訊息的時間長。發布時間越長,訂閱項目將訊息寫入 Bigtable 的速率就越慢,總處理量也會隨之降低。

為盡量縮短訊息發布時間,建議您在 Bigtable 叢集所在的相同區域發布訊息。

後續步驟

  • 如果 Bigtable 訂閱方案仍有問題,請參閱「取得支援」。