如果您使用 Pub/Sub 指標做為信號,以便自動調度管道,請參考以下建議。
使用多個信號自動調整管道
請勿只使用 Pub/Sub 指標來自動調整管道資源配置。這可能會導致單一故障點,導致您無法做出適當的自動調整大小決策。請改用信號組合來觸發自動調整大小功能。額外信號的範例是用戶端的 CPU 使用率。這個信號可指出用戶端工作是否正在處理工作,以及是否可透過擴大規模讓用戶端工作處理更多工作。以下列舉幾種信號範例,這些信號來自其他 Cloud 產品,可用於管道:
Compute Engine 支援依據 CPU 使用率和監控指標等信號自動調度資源。Compute Engine 也支援多個指標和多個信號,可提高可靠性。
如要進一步瞭解如何使用 Monitoring 指標進行資源調度,請參閱「根據 Monitoring 指標調度資源」。如要進一步瞭解如何根據 CPU 使用率調整規模,請參閱「根據 CPU 使用率執行資源調度」一文。
Google Kubernetes Engine 水平 Pod 自動調度資源 (HPA) 支援根據資源使用量 (例如 CPU 和記憶體使用量)、自訂 Kubernetes 指標和外部指標 (例如 Pub/Sub 的監控指標) 自動調度資源。也支援多個信號。
詳情請參閱「水平 Pod 自動調度資源」。
如何處理指標缺口
請勿假設沒有指標就代表沒有要處理的郵件。舉例來說,如果您為了因應缺少指標而將處理工作縮減至零,則在這個期間內已在待處理工作中或已發布的訊息可能不會被使用。這會增加端對端延遲時間。為盡量減少延遲時間,請將最小工作數量設為大於零,這樣即使近期的 Pub/Sub 指標顯示佇列為空,您也能隨時處理已發布的訊息。
Compute Engine 自動調度資源和 Google Kubernetes Engine HPA 都是為了在無法取得指標時,維持目前的複本數量。在沒有可用指標的情況下,這項功能可提供安全防護網。
您也可以實作 Pub/Sub 流量控制機制,避免任務因缺少指標而意外縮減。
使用指標的地區版本
Pub/Sub 提供每個指標的兩個版本,通常用於自動調整大小。請務必使用附有 by_region
字尾的版本:
如果您希望自動調度資源功能能夠在單一地區停機時保持彈性,請勿使用這些指標的全域版本。這些指標的全域版本需要計算所有已知有訊息的區域的積壓量,也就是說,如果單一區域無法使用,就會導致資料缺口。相反地,by_region
版本的指標會依地區計算並回報積壓工作。如果無法為單一區域計算積壓工作,指標仍會回報其他區域的值。