Pub/Sub 配額和限制

Trusted Cloud by S3NS 會使用配額來限制您可使用的特定共用 Trusted Cloud by S3NS 資源數量。每項配額限制都代表特定的可計數資源,例如向特定服務發出的 API 呼叫數、傳送至特定服務的位元組數,或者專案並行使用的串流連線數量。

許多服務也有與配額系統無關的限制。這些是固定限制,例如訊息大小上限,或是您可以在專案中建立的 Pub/Sub 資源數量,無法增加或減少。

查看及管理配額

您可針對特定專案使用 IAM 與管理員配額資訊主頁,檢視目前的配額限制及用量。您也可以使用這個資訊主頁執行下列操作:

  • 調降配額限制
  • 申請提高配額限制

如要進一步瞭解如何監控配額用量及設定相關快訊,請參閱「監控」一文。

配額用量歸因

針對推送訂閱者總處理量的部分,系統會依據包含推送訂閱的專案收取配額用量費用。這個專案會顯示在訂閱項目的名稱中。

至於其他配額,系統會依據要求中指定的憑證所屬專案收取用量費用。配額用量不會計入包含所要求資源的專案。

舉例來說,如果專案 A 的服務帳戶送出發布要求,要在專案 B 內發布主題,那麼系統就會向專案 A 收取配額費用。在某些情況下,您可能會希望配額用量計入其他專案的費用。您可以使用 X-Goog-User-Project 系統參數,變更配額歸因的專案。如要進一步瞭解 X-Goog-User-Project,請參閱「系統參數」。

您可以使用 gcloud CLI,為特定要求設定配額歸因專案。gcloud CLI 會傳送 X-Goog-User-Project 要求標頭。

您必須在用於配額歸因的專案中,具備 roles/serviceusage.serviceUsageConsumer 角色或具備 serviceusage.services.use 權限的自訂角色。

以下範例說明如何取得專案 RESOURCE_PROJECT 中的訂閱項目清單,同時針對專案 QUOTA_PROJECT 扣除 Administrator operations 配額。在 Google Cloud CLI 終端機中執行下列指令:

gcloud pubsub subscriptions list --project=
RESOURCE_PROJECT --billing-project=
QUOTA_PROJECT

QUOTA_PROJECT 替換為您要收取配額費用的專案 ID。 Trusted Cloud by S3NS

請注意,在 Pub/Sub 中,計費專案一律是包含資源的專案。您只能變更配額歸因的專案。

Pub/Sub 配額

您可以在 API 和服務的配額資訊主頁中查看及編輯各項專案的配額,配額相關資訊請見下表。

區域配額分為 3 種:

  • 大型區域:europe-west1europe-west4us-central1us-east1us-east4us-west1us-west2
  • 中型區域:asia-east1asia-northeast1asia-southeast1europe-west2europe-west3
  • 小型區域:所有其他區域

「僅傳送一次」配額是區域專屬。詳情請參閱下表。

配額 預設配額限制 說明
每個區域的發布者處理量
  • 大型區域為每分鐘 240,000,000 KB (每秒 4 GB)
  • 中型區域為每分鐘 48,000,000 KB (每秒 800 MB)
  • 小型區域為每分鐘 12,000,000 KB (每秒 200 MB)

pubsub.googleapis.com/regionalpublisher

配額用量是按照已發布的 PubsubMessage 大小計算:

一項發布要求中可以包含多則訊息,系統不會針對各則訊息收取額外的配額費用。為計算配額用量,系統也會將自動產生的 message_id 欄位納入訊息大小。

每個區域的提取訂閱者總處理量
  • 大型區域為每分鐘 240,000,000 KB (每秒 4 GB)
  • 中型區域為每分鐘 48,000,000 KB (每秒 800 MB)
  • 小型區域為每分鐘 24,000,000 KB (每秒 400 MB)

pubsub.googleapis.com/regionalsubscriber

配額用量是按照傳回的 PubsubMessage 大小計算:

為計算配額用量,系統也會將自動產生的 message_id 欄位納入訊息大小。

每個區域的確認者處理量
  • 大型區域為每分鐘 240,000,000 KB (每秒 4 GB)
  • 中型區域為每分鐘 48,000,000 KB (每秒 800 MB)
  • 小型區域為每分鐘 24,000,000 KB (每秒 400 MB)

pubsub.googleapis.com/regionalacknowledger

配額用量是按照 AcknowledgeModifyAckDeadline 要求的大小計算:

每個區域的推送訂閱處理量
  • 大型區域為每分鐘 26,400,000 KB (每秒 440 MB)
  • 中型區域為每分鐘 8,400,000 KB (每秒 140 MB)
  • 小型區域為每分鐘 2,400,000 KB (每秒 40 MB)

pubsub.googleapis.com/regionalpushsubscriber

以傳送至推送端點的推送傳遞要求來說,配額用量是按照傳送至推送端點的 PubsubMessage 大小計算。

BigQuery 訂閱 每個區域的處理量
  • 大型區域為每分鐘 240,000,000 KB (每秒 4 GB)
  • 中型區域為每分鐘 48,000,000 KB (每秒 800 MB)
  • 小型區域為每分鐘 12,000,000 KB (每秒 200 MB)

pubsub.googleapis.com/regionalpushbigquerysubscriber

如果是傳送至 BigQuery 的要求,配額用量是按照傳送至 BigQuery 的 PubsubMessage 大小計算。

Cloud Storage 訂閱項目 每個區域的處理量
  • 大型區域為每分鐘 240,000,000 KB (每秒 4 GB)
  • 中型區域為每分鐘 48,000,000 KB (每秒 800 MB)
  • 小型區域為每分鐘 12,000,000 KB (每秒 200 MB)

pubsub.googleapis.com/regionalpushcloudstoragesubscriber

以傳送至 Cloud Storage 的要求來說,配額用量是按照傳送至 Cloud Storage 的 PubsubMessage 大小計算。

每個區域的 StreamingPull 訂閱者處理量
  • 大型區域為每分鐘 240,000,000 KB (每秒 4 GB)
  • 中型區域為每分鐘 48,000,000 KB (每秒 800 MB)
  • 小型區域為每分鐘 24,000,000 KB (每秒 400 MB)

pubsub.googleapis.com/regionalstreamingpullsubscriber

配額用量是按照已串流至訂閱者的 PubsubMessage 大小計算:

用戶端程式庫會盡可能使用 StreamingPull 作業。

每個區域的 StreamingPull 開放連線數量
  • 大型區域為每次 72,000 項公開連線
  • 中型區域為每次 48,000 項公開連線
  • 小型區域為每次 24,000 項公開連線

pubsub.googleapis.com/regionalstreamingpullconnections

任意時間點的 StreamingPull 公開連線數。請參閱 StreamingPull

系統管理員作業 每分鐘 6,000 次 (每秒 100 次操作)

pubsub.googleapis.com/administrator

每項系統管理員作業 (例如 GetTopicRequest) 都會耗用一個配額單位。

Get*List*Create*Delete*Update*ModifyPushConfigSetIamPolicyGetIamPolicyTestIamPermissionsValidateSchemaValidateMessageCommitSchemaRollbackSchemaDeleteSchemaRevisionListSchemaRevisionsDetachSubscription 均為系統管理員作業。

各區域中,已啟用「只傳送一次」的訂閱項目所消耗的訊息數
  • 在 us-central1 中,每分鐘 1,000,000 則訊息
  • 在 us-east1 中,每分鐘 70 萬則訊息
  • 在 us-west1 中,每分鐘 300,000 則訊息
  • 其他區域每分鐘 180,000 則訊息

pubsub.googleapis.com/exactlyoncedeliveredmessagecount

配額用量是按照訂閱者消耗的 PubsubMessage 數量計算:

在每個區域啟用僅傳送一次的訂閱項目時,已確認或延長期限的訊息數量
  • 在 us-central1 中,每分鐘 1,000 萬則訊息
  • 在 us-east1 中,每分鐘 700 萬則訊息
  • 在 us-west1 中,每分鐘 300 萬則訊息
  • 其他區域每分鐘 1,800,000 則訊息

pubsub.googleapis.com/exactlyonceackcount

配額用量是按照 AcknowledgeModifyAckDeadline 要求中的確認 ID 數量計算:

總處理量配額單位

總處理量配額是以 1 kB 為單位計算用量。1 KB 等於 1,000 個位元組。舉例來說,如果 PublishRequest 中含有 105 則訊息,每則訊息的大小為 50 個位元組,則使用者資料大小為 105 * 50 bytes = 5250 bytes,因此配額用量為 max(1kB, ceil(5250 bytes/1000)) = 6kB

資源限制

資源 限制
專案 10,000 個主題
10,000 個附加或卸離訂閱項目
5,000 張快照
10,000 個結構定義
主題 10,000 個附加訂閱項目
5,000 張附加快照
如果已設定主題訊息保留時間,發布至主題的訊息最多可在永久儲存空間保留 31 天 (自發布當下起算)。
訂閱 根據預設,未確認的訊息會保留在永久儲存空間中 7 天 (自發布當下起算)。保留的訊息數量沒有限制。
如果訂閱者未使用訂閱項目,訂閱項目就會過期。 預設的有效期限為 31 天。
結構定義 結構定義大小 (definition 欄位):300 KB
每個結構定義的修訂版本:20 個
發布要求 總大小 10 MB
1,000 則訊息
訊息 訊息大小 (data 欄位):10 MB
每則訊息的屬性數:100 項
屬性鍵大小:256 個位元組
屬性值大小:1,024 個位元組
StreamingPull 串流 每項公開串流每秒 10 MB
一元提取回應 提取回應中的訊息數量上限:1000
提取回應大小上限:10 MB
Pull/StreamingPull 訊息 本服務可能會限制每個連線的待處理 StreamingPull 訊息總數。如果受到這類限制影響,請提高確認訊息的速率和所用連線數量。
Acknowledge 和 ModifyAckDeadline 要求 512 KB (總大小)
排序鍵 如果訊息含有排序鍵,則每個排序鍵的最大發布者總處理量為每秒 1 MB。
Cloud Storage 值區物件 使用 Cloud Storage 匯入主題時,bucket 中的物件數量上限為 5 千萬個。

使用服務帳戶取得較高的配額

如果您是以一般使用者帳戶 (也就是非服務帳戶) 使用 Google Cloud CLI 工具,Pub/Sub 只能以適合手動作業的速率執行工作。一旦超過上述速率限制,系統就會傳回 RESOURCE_EXHAUSTED 錯誤。您只要改用服務帳戶憑證就能解決這個問題。如要使用 gcloud CLI 提供的憑證自動化處理作業,請啟用服務帳戶來執行 Pub/Sub 作業。

使用位置端點來轉送要求

如果部分區域仍有剩餘配額,您可以使用區域性 Pub/Sub 端點將要求轉送至這些區域。將訊息發布至全球端點時,Pub/Sub 服務可能會將流量轉送至配額不足的區域。

配額不符

發布或接收訊息小於 1,000 位元組時,可能會發生配額不符的情形,例如:

  • 如果您在不同要求中發布 10 則 500 位元組的訊息,發布者配額用量就是 10,000 位元組。這是因為小於 1,000 位元組的訊息,會自動無條件進位至下一個 1,000 位元組。

  • 如果在單一提取回應中接收了前述 10 則訊息,您的訂閱者配額用量可能變成只有 5 kB,這是因為系統會合併計算各則訊息的實際大小,而得出的總和就是總體配額。

  • 反之亦然。如果您在一項發布要求中同時發布了多則訊息,或是透過不同的提取要求接收訊息,訂閱者配額用量可能會高於發布者配額用量。