外部應用程式負載平衡器最佳做法

Cloud Load Balancing 提供多種機制,可將使用者流量分配到應用程式的多個執行個體。方法是將負載分散到各個應用程式執行個體,為使用者提供最佳應用程式效能。本頁說明一些最佳做法,確保負載平衡器已針對應用程式進行最佳化。為確保最佳效能,建議您對應用程式的流量模式進行基準測試。

將後端放在靠近用戶端的位置

使用者或用戶端應用程式與工作負載 (負載平衡器後端) 的距離越近,兩者之間的網路延遲時間就越短。因此,請在最接近使用者流量到達 Google 前端的位置,建立負載平衡器後端。在許多情況下,您必須在多個區域執行後端,才能盡可能縮短世界各地用戶端的延遲時間。

如需詳細資訊,請參閱下列主題:

設定高可用性和容錯移轉

為防範區域性或全球性基礎架構中斷和設定錯誤,請使用 Cloud DNS 路由政策和健康狀態檢查,設定多區域高可用性和容錯移轉:

  • 如果是全域外部應用程式負載平衡器,請在多個區域部署區域性外部應用程式負載平衡器,做為容錯移轉負載平衡器。如果架構不依賴容量感知全域後端負載平衡,建議採用主動-主動全域至區域繞過策略,其中全域外部應用程式負載平衡器會做為區域性外部應用程式負載平衡器前端的邊緣前端。如果應用程式需要全域後端負載平衡,根據後端容量在不同區域分配及溢出流量,請實作主動-被動全域至區域容錯移轉策略。詳情請參閱「全域外部應用程式負載平衡器的容錯移轉」。
  • 如果是區域性外部應用程式負載平衡器,請在多個區域部署獨立的區域性外部應用程式負載平衡器,並使用 Cloud DNS 健康狀態檢查和路由政策,實作主動-被動區域容錯移轉,或跨區域的主動-主動鄰近路由。詳情請參閱「區域性外部應用程式負載平衡器的高可用性」。

啟用 Cloud CDN 快取功能

在預設的全域外部應用程式負載平衡器設定中,啟用 Cloud CDN 和快取功能。詳情請參閱「Cloud CDN」。

啟用 Cloud CDN 後,可能需要幾分鐘才會開始快取回應。Cloud CDN 只會快取含可快取內容的回應。如果系統未快取特定網址的回應,請檢查該網址傳回了哪些回應標頭,以及後端的可快取性設定。詳情請參閱「Cloud CDN 疑難排解」。

選取轉送規則通訊協定

  • 如果是全域外部應用程式負載平衡器和傳統版應用程式負載平衡器,建議使用 HTTP/3,這是以 IETF QUIC 為基礎建構的網際網路通訊協定。所有主要瀏覽器、Android Cronet 和 iOS 預設都會啟用 HTTP/3。如要為應用程式使用 HTTP/3,請確認 UDP 流量未在網路上遭到封鎖或頻率限制,且先前未在全域外部應用程式負載平衡器上停用 HTTP/3。尚未支援 HTTP/3 的用戶端 (例如舊版瀏覽器或網路程式庫) 不會受到影響。詳情請參閱「HTTP/3 QUIC」。

  • 區域性外部應用程式負載平衡器支援 HTTP/1.1、HTTPS 和 HTTP/2。HTTPS 和 HTTP/2 都需要一些前期負擔來設定 TLS。

後端服務通訊協定選項

您選擇的後端通訊協定 (HTTP、HTTPS 或 HTTP/2) 會影響應用程式延遲時間,以及應用程式可用的網路頻寬。舉例來說,相較於 HTTP(S),在負載平衡器和後端執行個體之間使用 HTTP/2,可能需要更多連至執行個體的 TCP 連線。連線集區是一種最佳化功能,可減少 HTTP(S) 連線數量,但不適用於 HTTP/2。因此,後端連線頻率較高,後端延遲時間可能也會較長。

後端服務通訊協定也會影響流量在傳輸中的加密方式。使用外部 HTTP(S) 負載平衡器時,所有傳送至 Google Cloud 虛擬私有雲網路內後端的流量都會自動加密。這稱為自動網路層級加密。不過,自動網路層級加密功能僅適用於與執行個體群組和可用區 NEG 後端的通訊。對於所有其他後端類型,建議您使用 HTTPS 和 HTTP/2 等安全通訊協定選項,加密與後端服務之間的通訊。詳情請參閱「從負載平衡器到後端的加密」。

網路狀況會變動,後端組合也可能因負載而異。如果應用程式會產生大量流量並傳送至單一服務,長時間執行的連線不一定是最佳設定。建議您選擇連線生命週期上限 (例如 10 到 20 分鐘) 和/或要求數量上限 (例如 1000 到 2000 個要求),並在達到上限後使用新連線處理新要求,而非無限期使用單一連線連至後端。當所有使用舊連線的有效要求完成後,舊連線就會關閉。

這樣一來,用戶端應用程式就能受益於後端組合的變更,包括負載平衡器的 Proxy,以及為用戶端提供服務所需的任何網路重新最佳化。

平衡模式選取條件

為提升效能,建議您根據回應速度最快的後端,為每項新要求選擇後端群組。如要達到這個目的,請使用 RATE 平衡模式。在這種情況下,系統會選擇近期要求平均延遲時間最低的後端群組,或 HTTP/2 和 HTTP/3 未完成要求最少的後端群組。

UTILIZATION 平衡模式僅適用於執行個體群組後端,並會根據執行個體群組中 VM 執行個體的使用率分配流量。

設定工作階段相依性

在某些情況下,由同一個後端處理來自同一使用者或與同一使用者相關的要求,可能會有好處,至少在短時間內是如此。您可以使用「工作階段相依性」設定,在後端服務上進行設定。工作階段相依性會控管用戶端與負載平衡器後端之間新連線的分佈情形。您可以使用工作階段相依性,確保同一個後端處理來自相同資源的要求,例如與同一個使用者帳戶相關或來自同一份文件的要求。

工作階段相依性是針對整個後端服務資源指定,而非個別後端。不過,網址對應可以指向多項後端服務。因此,您不必只為負載平衡器使用一種工作階段相依性類型。視應用程式而定,您可以使用不同的後端服務,並搭配不同的工作階段相依性設定。舉例來說,如果應用程式的某個部分向多位使用者提供靜態內容,則不太可能受益於工作階段相依性。您應改用已啟用 Cloud CDN 的後端服務,提供快取的回應。

詳情請參閱「工作階段相依性」。