配額與限制

這份說明文件提供 Pub/Sub 配額與資源使用限制的相關資訊。

如要進一步瞭解如何追蹤配額 (例如主題或訂閱項目使用率),請參閱監控相關說明。

查看配額用量及管理配額限制

您可以使用 API 和服務的配額資訊主頁,查看特定專案目前的配額與用量。另外,您也可以透過這個資訊主頁一次調整一項配額。

如要同時調整多項配額,請使用 IAM 與管理的配額資訊主頁

以上這兩種資訊主頁都能讓您:

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

專案用量歸算

就推送訂閱者總處理量而言,系統會將配額用量的費用計入包含推送訂閱的專案。

以下列配額來說,系統會向與呼叫者憑證相關聯的專案收取用量費用,而非向含有所要求資源的專案收取費用 (後者即為主題或訂閱項目名稱中顯示的專案):

  • 發布者總處理量
  • 訂閱者總處理量
  • 系統管理員作業

舉例來說,如果專案 A 的服務帳戶傳送了發布要求,請求在專案 B 中發布某個主題,系統會向專案 A 收取配額使用費。您可以在每項要求中找到含有專案 ID 的憑證。

配額限制

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

配額 預設配額限制 說明
發布者總處理量 每分鐘 6,000 萬 KB (每秒 1,000 MB) 配額使用量是按照已發布 PubsubMessage 的大小計算:

請注意,一個發布要求中可以包含多則訊息,系統不會針對每則訊息額外收取配額費用。

提取訂閱者總處理量 每分鐘 1 億 2,000 萬 KB (每秒 2,000 MB) 提取作業的配額用量是按照傳回 PubsubMessage 的大小計算:

另外,AcknowledgeModifyAckDeadline 要求中包含的資料量也會計入這項配額:

  • AcknowledgeRequest (RPC)
  • ModifyAckDeadlineRequest (RPC)
    推送訂閱者總處理量 每分鐘 600 萬 KB (每秒 100 MB) 以傳送至推送端點的推送傳遞要求來說,配額用量是按照傳送至推送端點的 PubsubMessage 的大小計算。
    StreamingPull 訂閱者總處理量 每分鐘 1 億 2,000 萬 KB (每秒 2,000 MB) 配額用量是按照已串流至訂閱者的 PubsubMessage 的大小計算:

    請注意,用戶端程式庫會盡可能使用 StreamingPull 作業。

    StreamingPull 公開連線數 每次 30,000 個公開連線 任意時間點的 StreamingPull 公開連線數。請參閱 StreamingPull
    系統管理員作業 每分鐘 6,000 次 (每秒 100 次操作) 每項系統管理員作業 (例如 GetTopicRequest) 都會耗用一個配額單位。

    一般來說,管理員作業組合由 Get*, List*, Create*, Delete*, ModifyPushConfig, SetIamPolicy, GetIamPolicyTestIamPermissions 構成。

    總處理量配額單位

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

    資源限制

    資源 限制
    專案 10,000 個主題
    10,000 個訂閱項目
    5,000 張快照
    主題 10,000 個附加訂閱項目
    5,000 張附加快照
    訂閱項目 未確認訊息會在永久儲存空間內保留 7 天 (自發布當下起算)。保留的訊息數量沒有限制。
    如果系統在 31 天內未偵測到訂閱項目的任何用戶端活動,就會自動刪除該項目。系統會透過多項呼叫偵測用戶端活動,例如 PullAcknowledge 和成功執行的推送作業。
    發布要求 總大小 10 MB
    1,000 則訊息
    訊息 訊息大小 (data 欄位):10 MB (要求大小上限)
    每則訊息的屬性數:100 項
    屬性鍵大小:256 個位元組
    屬性值大小:1,024 個位元組
    推送待處理訊息 3,000 * N,其中的 N 為發布地區數量。詳情請參閱使用推送訂閱一文。
    StreamingPull 串流 每個公開串流 10 MB/s
    Pull/StreamingPull 訊息 本服務可能會限制每個連線的待處理 StreamingPull 訊息總數。如果您遇到這類限制,請提高確認訊息的速率和所用連線的數量。

    提示與注意事項

    大量作業

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

    配額不符

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

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

    • 如果您在單一提取回應中接收前述 10 則訊息,訂閱者配額用量可能只有 5 KB,因為整體配額用量是取決於所有訊息的實際大小總和。

    • 前述的情形若反過來看也會成立。如果您在一項發布要求中同時發布了多則訊息,或是透過不同的提取要求接收訊息,訂閱者配額用量可能會高於發布者配額用量。