使用進階負載平衡最佳化功能

本頁說明如何為應用程式負載平衡器和 Proxy 網路負載平衡器,設定進階的費用、延遲和復原能力最佳化功能。

Cloud Service Mesh 也支援進階負載平衡最佳化功能。詳情請參閱 Cloud Service Mesh 說明文件中的「進階負載平衡總覽」。

Cloud Load Balancing 提供下列進階功能:

  • 服務負載平衡政策。服務負載平衡政策 (serviceLbPolicy) 是與負載平衡器的後端服務相關聯的資源。服務負載平衡政策可讓您自訂下列參數,藉此影響流量在後端之間的分配方式;請注意,這些後端已與後端服務建立關聯:

    • 負載平衡演算法。自訂負載平衡演算法,決定流量在特定區域或可用區的分配方式。
    • 自動容量排除機制。啟用自動排空容量,讓負載平衡器能快速從健康狀態不良的後端排空流量。
    • 容錯移轉門檻:設定容錯移轉門檻,決定何時將後端視為健康狀態不良。這樣一來,流量就能容錯移轉至其他後端,避開健康狀態不良的後端。
    • 流量隔離。限制或禁止跨區域流量溢位,避免連鎖性故障。
  • 偏好的後端。您可以將特定後端指定為偏好後端。要求傳送至其餘後端之前,必須先充分利用這些後端。

下圖顯示 Cloud Load Balancing 如何評估路由、負載平衡和流量分配。

Cloud Load Balancing 如何做出路徑和流量分配決策。
瞭解 Cloud Load Balancing 如何做出路徑和流量分配決策。

事前準備

在查看本頁內容之前,請先詳閱外部應用程式負載平衡器總覽頁面中說明的「要求分配程序」。對於一律採用進階層的負載平衡器,如果首選區域已滿,本頁面所述的所有負載平衡演算法都支援在區域之間溢出。

支援的負載平衡器和後端

下列負載平衡器支援服務負載平衡政策和偏好的後端:

  • 全域外部應用程式負載平衡器
  • 跨區域內部應用程式負載平衡器
  • 全域外部 Proxy 網路負載平衡器
  • 跨區域內部 Proxy 網路負載平衡器

本頁面所述功能需要支援平衡模式的相容後端。下表匯總了支援的後端:

後端 是否支援?
執行個體群組
系統支援區域非代管和區域代管執行個體群組,但不支援地區代管執行個體群組。
區域性 NEG (GCE_VM_IP_PORT 個端點)
區域性 NEG (GCE_VM_IP 個端點)
應用程式負載平衡器和 Proxy 網路負載平衡器不支援這類 NEG。
混合式 NEG (NON_GCP_PRIVATE_IP_PORT 端點)
無伺服器網路端點群組 (NEG)
網際網路 NEG
Private Service Connect NEG

負載平衡演算法

本節說明您可以在服務負載平衡政策中設定的負載平衡演算法。如未設定演算法,或完全未設定服務負載平衡政策,負載平衡器預設會使用 WATERFALL_BY_REGION

按照區域依序分散

WATERFALL_BY_REGION 是預設的負載平衡演算法。透過這項演算法,最靠近使用者的區域中,所有 Google 前端 (GFE) 都會嘗試填滿後端,比例與設定的目標容量 (由容量縮放器修改) 相符。

每個第二層 GFE 都會盡量選取與第二層 GFE 距離最近 (由網路往返時間定義) 的可用區中的後端執行個體或端點。由於 WATERFALL_BY_REGION 可將區域間的延遲時間縮至最短,因此在要求傳送頻率較低時,每個第二層 GFE 可能會專門將要求傳送至第二層 GFE 偏好的區域中的後端。

如果最近地區的所有後端都已達到設定的容量上限,流量就會開始溢流至下一個最近地區,同時盡量縮短網路延遲時間。

分散至區域

SPRAY_TO_REGION演算法會修改每個第二層 GFE 的個別行為,讓每個第二層 GFE 不會偏好選取與第二層 GFE 盡可能接近的區域中的後端執行個體或端點。使用 SPRAY_TO_REGION 時,每個第二層 GFE 都會向區域內所有可用區的後端執行個體或端點傳送要求,不會優先選擇第二層 GFE 與後端執行個體或端點之間往返時間較短的連線。

WATERFALL_BY_REGION 類似,該區域的所有第二層 GFE 會根據設定的目標容量 (由容量縮放器修改) 填補後端。

SPRAY_TO_REGION 可在區域的所有可用區中,更平均地分配後端之間的流量,尤其是在要求率偏低時。不過,這種平均分配方式有以下注意事項:

  • 後端發生故障 (但仍通過健康狀態檢查) 時,受影響的第二層 GFE 會變多,但個別影響較輕微。
  • 由於每個第二層 GFE 對區域沒有偏好,因此第二層 GFE 會產生更多跨區域流量。視處理的要求數量而定,每個第二層 GFE 也可能會建立更多與後端的 TCP 連線。

按照可用區依序分散

WATERFALL_BY_ZONE演算法會修改每個第二層 GFE 的個別行為,讓每個第二層 GFE 盡可能選取與自身最接近的區域中的後端執行個體或端點。使用 WATERFALL_BY_ZONE 時,只有在第二層 GFE 填滿 (或按比例填滿) 最偏好區域的後端執行個體或端點時,每個第二層 GFE 才會將要求傳送至該區域其他可用區的後端執行個體或端點。

WATERFALL_BY_REGION 類似,該區域的所有第二層 GFE 會根據設定的目標容量 (由容量縮放器修改) 填補後端。

WATERFALL_BY_ZONE 演算法會考量下列因素,盡量縮短延遲時間

  • WATERFALL_BY_ZONE 本身不會盡量減少跨區域連線。演算法只會根據延遲時間調整。
  • WATERFALL_BY_ZONE 不保證第二層 GFE 一律會先填滿最偏好的區域,再填滿其他區域。維護事件可能會暫時導致第二層 GFE 的所有流量,傳送至其他可用區的後端執行個體或端點。
  • WATERFALL_BY_ZONE,導致區域內所有後端執行個體或端點之間的要求分配不夠平均。舉例來說,第二層 GFE 最偏好的區域中,後端執行個體或端點的容量可能已滿,但其他區域的後端容量尚未填滿。

比較負載平衡演算法

下表比較了各種負載平衡演算法。

行為 按照區域依序分散 分散至區域 按照可用區依序分散
單一區域內的容量用量一致
多個區域的運算能力用量一致
負載平衡器平均分配流量
跨區域流量分配 可以。流量會平均分配至某個區域中的各個可用區,同時盡量縮短網路延遲時間。視需要跨區域傳送流量。 可以。流量會先傳送到最近的可用區,直到該可用區的容量達到上限為止。接著前往下一個最接近的區域。
對本機區域流量尖峰的敏感度 平均值;取決於已轉移多少流量,以在各區域之間平衡流量。 較低;單一可用區尖峰流量會分散到該區域的所有可用區。 較高;單一可用區的尖峰流量很可能完全由同一個可用區處理,直到負載平衡器做出反應為止。

自動排除及取消排除容量

自動排除和取消排除容量結合了健康狀態檢查和後端容量的概念。有了自動排除容量功能,系統會使用健康狀態檢查做為額外信號,將有效後端容量設為零。透過自動容量取消訓練,系統會使用健康狀態檢查做為額外信號,將有效後端容量還原為先前的值。

如果沒有自動排空和排空後復原容量功能,如要將要求從特定區域的所有後端導向其他區域,您必須手動將該區域中每個後端的有效容量設為零。舉例來說,您可以使用容量調整器執行這項操作。

透過自動排除和排除後復原容量,健康狀態檢查可做為調整後端容量的信號,無論是排除或排除後復原容量。

如要啟用自動排空和取消排空功能,請參閱「設定服務負載平衡政策」。

自動容量排除機制

自動排空容量會將每個可排空候選後端執行個體群組或 NEG 的容量設為零,前提是可排空候選後端執行個體群組或 NEG 相較於所有後端執行個體群組或 NEG 的比例低於 50%。計算 50% 比率時,系統不會將容量為零的後端納入分子。不過,所有後端都會納入分母。

可排空候選後端是指後端執行個體群組或 NEG,其中通過負載平衡器健康狀態檢查的成員執行個體或端點少於 25%。

容量為零的後端如下:

  • 沒有成員執行個體的後端執行個體群組,其中執行個體群組容量是根據每個執行個體定義
  • 沒有成員端點的後端 NEG,其中 NEG 容量是根據每個端點定義
  • 容量調度器設為零的後端執行個體群組或 NEG

自動耗盡的後端容量在功能上等同於手動將後端的 backendService.backends[].capacityScaler 設為 0,但不會設定容量配置器值。

自動容量排除機制

當後端執行個體或端點有 35% 以上通過健康狀態檢查至少 60 秒時,自動容量取消排空會將後端容量恢復為後端容量調度器控制的值。如果健康狀態檢查快速接連失敗和通過,60 秒的規定可減少連續排空和取消排空的機率。

容錯移轉門檻

負載平衡器會以多層方式決定後端之間的流量分配。在穩定狀態下,系統會根據先前說明的其中一種負載平衡演算法,將流量傳送至所選後端。這些後端稱為「主要後端」,在延遲和容量方面都是最佳選擇。

如果主要後端健康狀態不良,無法處理流量,負載平衡器也會追蹤其他可用的後端。這些後端稱為「容錯移轉後端」。這些後端通常是附近有剩餘容量的後端。

如果主要後端中的執行個體或端點狀況不佳,負載平衡器不會立即將流量轉移至其他後端。負載平衡器會先將流量轉移至同一後端中的其他健康執行個體或端點,以協助穩定流量負載。如果主要後端中有太多端點健康狀態不良,且同一後端中的其餘端點無法處理額外流量,負載平衡器會使用容錯移轉門檻,判斷何時開始將流量傳送至容錯移轉後端。負載平衡器會容許主要後端健康狀態不良,但不得超過容錯移轉門檻。之後,流量就會從主要後端移開。

容錯移轉門檻是介於 1 到 99 之間的值,表示後端中必須處於正常狀態的端點百分比。如果健康端點的百分比低於容錯移轉門檻,負載平衡器會嘗試將流量傳送至容錯移轉後端。預設的容錯移轉門檻為 70。

如果容錯移轉門檻設定過高,可能會因暫時的健康狀態變化而發生不必要的流量溢出。如果容錯移轉門檻設定過低,即使有許多不健康的端點,負載平衡器仍會繼續將流量傳送至主要後端。

系統會根據當地情況做出容錯移轉決策。每個本機 Google Front End (GFE) 的運作方式都獨立於其他 GFE。您有責任確保容錯移轉後端可處理額外流量。

容錯移轉流量可能會導致後端過載。即使後端不健康,負載平衡器仍可能會將流量傳送至該處。如要從可用後端集區中排除狀況不佳的後端,請啟用自動容量排除機制

流量隔離

根據預設,Cloud Load Balancing 會使用 WATERFALL_BY_REGION 演算法,決定使用者流量的轉送目的地。如果最接近使用者的地區中,後端已滿或健康狀態不良,流量就會溢流至其他地區。WATERFALL_BY_REGION啟用流量隔離後,即使該區域的所有後端都已達到設定的容量上限,負載平衡器只會將流量轉送至最接近使用者的區域。啟用流量隔離功能有助於避免區域性故障連鎖反應,並將潛在的服務中斷情況限制在單一區域。

流量隔離功能會設定為服務負載平衡政策的一部分。 您可以使用下列兩種隔離模式:

  • NEAREST (預設),負載平衡器 (即處理連線的第二層 GFE 或 Envoy Proxy) 會將流量傳送至最靠近使用者的區域中的後端。如果最近的區域未設定任何後端,或最近區域中的後端健康狀態不良,系統就會將流量轉送至次近區域,同時盡量縮短網路延遲時間。直到各區域的伺服器負載量用盡為止。

  • STRICT:負載平衡器 (即處理連線的 Envoy Proxy) 只會將流量傳送至距離使用者最近區域的後端。如果最近的地區未設定任何後端,或最近地區的後端健康狀態不佳,無法處理要求,流量就會遭到捨棄,要求也會開始失敗。

未隔離

下圖顯示未啟用流量隔離時,跨區域負載平衡器的行為。

未啟用流量隔離時,Cloud Load Balancing 的行為。
未啟用流量隔離時,Cloud Load Balancing 的行為。

最近

下圖顯示啟用 NEAREST 模式的流量隔離功能時,跨區域負載平衡器的行為。

在 NEAREST 模式下啟用流量隔離時,Cloud Load Balancing 的行為。
在「NEAREST」模式下啟用流量隔離功能時,Cloud Load Balancing 的運作方式。

嚴格

下圖顯示啟用 STRICT 模式的流量隔離功能時,跨區域負載平衡器的行為。

在 STRICT 模式下啟用流量隔離時,Cloud Load Balancing 的行為。
在 STRICT 模式下啟用流量隔離時,Cloud Load Balancing 的行為。

啟用這項功能前,請注意下列事項:

  • 如果某個區域的後端過度負載,即使其他區域的後端可以處理流量,負載平衡器仍可能會將額外流量傳送至該區域。這表示每個區域的後端都可能因額外流量而過載,因此您需要相應調整計畫。

  • 即使啟用隔離功能,流量仍會透過全球控制層轉送。也就是說,多個區域仍有可能發生全域故障。如要提升基礎架構層級的隔離效果,請選擇區域負載平衡器

設定流量隔離模式時,您也必須將隔離精細度設為 REGION,避免跨區域流量溢出。如果未設定精細度,系統就不會強制執行流量隔離。如要進一步瞭解如何啟用流量隔離功能,請參閱設定服務負載平衡政策

偏好的後端

偏好的後端是指在流量溢出到其他後端之前,您希望容量完全用盡的後端。如果流量超過偏好後端設定的容量,系統會將流量轉送至其餘非偏好的後端。負載平衡演算法接著會在後端服務的非偏好後端之間分配流量。

您可以設定負載平衡器,優先使用後端服務所連線的一或多個後端,並在將後續要求轉送至其餘後端之前,完全使用這些後端。

使用偏好的後端時,請注意下列限制:

  • 設定為偏好後端的後端可能離用戶端較遠,導致用戶端要求的平均延遲時間較長。即使有其他距離較近的後端可為用戶端提供延遲較低的服務,仍會發生這種情況。
  • 某些負載平衡演算法 (WATERFALL_BY_REGIONSPRAY_TO_REGIONWATERFALL_BY_ZONE) 不適用於設為偏好後端的後端。

如要瞭解如何設定偏好的後端,請參閱「設定偏好的後端」。

設定服務負載平衡政策

服務負載平衡政策資源可讓您設定下列欄位:

  • 負載平衡演算法
  • 自動容量排除機制
  • 容錯移轉門檻
  • 流量隔離

如要設定偏好後端,請參閱「設定偏好後端」。

建立政策

請按照下列步驟建立及設定服務負載平衡政策。

主控台

請按照下列步驟建立服務負載平衡政策。

  1. 前往 Google Cloud 控制台的「Load balancing」(負載平衡)頁面。

    前往「Load balancing」(負載平衡) 頁面

  2. 按一下「建立服務負載平衡政策」

  3. 輸入服務負載平衡政策的「名稱」

  4. 如要啟用自動排空容量功能,請選取「Drain traffic from unhealthy backends」(從健康狀態不良的後端排空流量)

  5. 在「容錯移轉健康狀態門檻」中,輸入介於 1 到 99 之間的數字。

  6. 在「流量分配」部分,選取要使用的負載平衡演算法。

  7. 點選「建立」

gcloud

  1. 建立服務負載平衡政策資源。您可以透過 YAML 檔案或直接使用 gcloud 參數完成這項操作。

    • 使用 YAML 檔案。您可以在 YAML 檔案中指定服務負載平衡政策。以下是 YAML 檔案範例,說明如何設定負載平衡演算法、啟用自動容量排空,以及設定自訂容錯移轉門檻:
    name: projects/PROJECT_ID/locations/global/serviceLbPolicies/SERVICE_LB_POLICY_NAME
    autoCapacityDrain:
        enable: True
    failoverConfig:
        failoverHealthThreshold: FAILOVER_THRESHOLD_VALUE
    loadBalancingAlgorithm: LOAD_BALANCING_ALGORITHM
    isolationConfig:
      isolationGranularity: ISOLATION_GRANULARITY
      isolationMode: ISOLATION_MODE
    

    更改下列內容:

    • PROJECT_ID:專案 ID。
    • SERVICE_LB_POLICY_NAME:服務負載平衡政策的名稱。
    • FAILOVER_THRESHOLD_VALUE:容錯移轉門檻值。這個值應介於 1 和 99 之間。
    • LOAD_BALANCING_ALGORITHM:要使用的負載平衡演算法。這可以是 SPRAY_TO_REGIONWATERFALL_BY_REGIONWATERFALL_BY_ZONE
    • ISOLATION_GRANULARITY:隔離限制的精細程度。為避免跨區域流量溢出,請將此值設為 REGION。如果未指定,系統不會強制執行任何隔離措施。
    • ISOLATION_MODE:隔離行為。可能的值為 NEARESTSTRICT

    建立 YAML 檔案後,請將檔案匯入新的服務負載平衡政策。

    gcloud network-services service-lb-policies import SERVICE_LB_POLICY_NAME \
       --source=PATH_TO_POLICY_FILE \
       --location=global
    
    • 沒有 YAML 檔案。或者,您也可以不使用 YAML 檔案,直接設定服務負載平衡政策功能。

    如要設定負載平衡演算法並啟用自動排空功能,請使用下列指令:

    gcloud network-services service-lb-policies create SERVICE_LB_POLICY_NAME \
       --load-balancing-algorithm=LOAD_BALANCING_ALGORITHM \
       --auto-capacity-drain \
       --failover-health-threshold=FAILOVER_THRESHOLD_VALUE \
       --location=global
    

    更改下列內容:

    • SERVICE_LB_POLICY_NAME:服務負載平衡政策的名稱。
    • LOAD_BALANCING_ALGORITHM:要使用的負載平衡演算法。這可以是 SPRAY_TO_REGIONWATERFALL_BY_REGIONWATERFALL_BY_ZONE
    • FAILOVER_THRESHOLD_VALUE:容錯移轉門檻值。這個值應介於 1 和 99 之間。

    如要設定流量隔離 (預覽版),請使用下列指令:

    gcloud beta network-services service-lb-policies create SERVICE_LB_POLICY_NAME \
       --isolation-config-granularity=ISOLATION_GRANULARITY \
       --isolation-config-mode=ISOLATION_MODE \
       --location=global
    

    更改下列內容:

    • ISOLATION_GRANULARITY:隔離限制的精細程度。為避免跨區域流量溢出,請將此值設為 REGION。如果未指定,系統不會強制執行任何隔離措施。
    • ISOLATION_MODE:隔離行為。可能的值為 NEARESTSTRICT
  2. 更新後端服務,使其 --service-lb-policy 欄位參照新建立的服務負載平衡政策資源。後端服務只能與一項服務負載平衡政策資源建立關聯。

    gcloud compute backend-services update BACKEND_SERVICE_NAME \
     --service-lb-policy=SERVICE_LB_POLICY_NAME \
     --global
    

    您也可以在建立後端服務時,將服務負載平衡政策與後端服務建立關聯。

    gcloud compute backend-services create BACKEND_SERVICE_NAME \
     --protocol=PROTOCOL \
     --port-name=NAMED_PORT_NAME \
     --health-checks=HEALTH_CHECK_NAME \
     --load-balancing-scheme=LOAD_BALANCING_SCHEME \
     --service-lb-policy=SERVICE_LB_POLICY_NAME \
     --global
    

停用政策中設定的功能

本節說明如何重設或停用服務負載平衡政策中設定的功能。

重設負載平衡演算法

如要重設負載平衡演算法,請使用下列指令將負載平衡演算法設回預設的 WATERFALL_BY_REGION

gcloud network-services service-lb-policies update SERVICE_LB_POLICY_NAME \
    --load-balancing-algorithm=WATERFALL_BY_REGION \
    --location=global

重設容錯移轉門檻

如要重設容錯移轉門檻,請使用下列指令將容錯移轉門檻恢復為預設的 70 秒:

gcloud network-services service-lb-policies update SERVICE_LB_POLICY_NAME \
    --failover-health-threshold=70 \
    --location=global

停用自動容量排除機制

如要停用自動排空容量功能,請使用下列指令:

gcloud network-services service-lb-policies update SERVICE_LB_POLICY_NAME \
    --no-auto-capacity-drain \
    --location=global

停用流量隔離

如要停用流量隔離 (搶先版),請將兩個隔離設定參數都設為 UNSPECIFIED,如下列指令所示:

gcloud beta network-services service-lb-policies update SERVICE_LB_POLICY_NAME \
    --isolation-config-granularity=UNSPECIFIED \
    --isolation-config-mode=UNSPECIFIED \
    --location=global

移除政策

如要從後端服務移除服務負載平衡政策,請使用下列指令:

gcloud compute backend-services update BACKEND_SERVICE_NAME \
    --no-service-lb-policy \
    --global

設定偏好的後端

您可以透過 Google Cloud CLI 或 API 設定偏好的後端。

主控台

在 Google Cloud 控制台中建立全域或跨區域負載平衡器時,您可以將後端指定為偏好後端。

將後端新增至後端服務時,請將「後端偏好等級」欄位設為「偏好」

gcloud

新增偏好的後端

如要設定偏好的後端,請使用 gcloud compute backend-services add-backend 指令,在將後端新增至後端服務時設定 --preference 旗標。

gcloud compute backend-services add-backend BACKEND_SERVICE_NAME \
    ...
    --preference=PREFERENCE \
    --global

PREFERENCE 替換為要指派給後端的偏好等級。可以是 PREFERREDDEFAULT

其餘指令取決於您使用的後端類型 (執行個體群組或 NEG)。如要查看所有必要參數,請參閱 gcloud compute backend-services add-backend 指令

更新後端的偏好設定

如要更新後端的 --preference 參數,請使用 gcloud compute backend-services update-backend 指令

gcloud compute backend-services update-backend BACKEND_SERVICE_NAME \
    ...
    --preference=PREFERENCE \
    --global

其餘指令取決於您使用的後端類型 (執行個體群組或 NEG)。下列範例指令會更新後端執行個體群組的偏好設定,並設為 PREFERRED

gcloud compute backend-services update-backend BACKEND_SERVICE_NAME \
    --instance-group=INSTANCE_GROUP_NAME \
    --instance-group-zone=INSTANCE_GROUP_ZONE \
    --preference=PREFERRED \
    --global

API

如要設定偏好的後端,請使用全域 backendServices 資源,在每個後端上設定 preference 旗標。

以下範例說明如何設定後端偏好設定:

  name: projects/PROJECT_ID/locations/global/backendServices/BACKEND_SERVICE_NAME
  ...
  - backends
      name: BACKEND_1_NAME
      preference: PREFERRED
      ...
  - backends
      name: BACKEND_2_NAME
      preference: DEFAULT
      ...

更改下列內容:

  • PROJECT_ID:專案 ID
  • BACKEND_SERVICE_NAME:後端服務的名稱
  • BACKEND_1_NAME:偏好後端的名稱
  • BACKEND_2_NAME:預設後端的名稱

疑難排解

將新的服務負載平衡政策附加至後端服務時,流量分配模式可能會變更。

如要偵錯流量問題,請使用 Cloud Monitoring 查看負載平衡器與後端之間的流量流動情形。Cloud Load Balancing 記錄和指標也有助於瞭解負載平衡行為。

本節將歸納開啟這些功能時可能會遇到的幾種常見情況。

負載平衡演算法

來自單一來源的流量傳送至過多不同的後端

這是 SPRAY_TO_REGION 演算法的預期行為。不過,流量分配範圍擴大可能會導致問題。舉例來說,後端會看到來自更多用戶端的流量,因此快取命中率可能會降低。在這種情況下,請考慮使用其他演算法,例如 WATERFALL_BY_REGION

自動容量排除機制

流量不會傳送至有大量健康狀態不良端點的後端

啟用 autoCapacityDrain 時,這是預期行為。如果後端有大量健康狀態不良的端點,系統會排除後端流量,並從負載平衡集區中移除後端。如不希望系統這麼做,可以停用自動耗用容量功能。不過,這表示流量可能會傳送至有大量健康狀態不良端點的後端,且要求可能會失敗。

容錯移轉門檻

流量會在暫時的健康狀態變更期間傳送至遠端後端

如果容錯移轉門檻設為高值,這是預期行為。如果希望流量在健康狀態暫時變更時,仍繼續導向主要後端,請將這個欄位設為較低的值。

其他端點健康狀態不良時,健康端點會過度負載

如果容錯移轉門檻設為低值,就會發生這種情況。如果端點健康狀態不良,系統會將原本要傳送至這些端點的流量,改為分配給同一後端中的其餘端點。如要更快觸發容錯移轉行為,請將這個欄位設為較高的值。

偏好的後端

流量會先傳送至較遠的後端,再傳送至較近的後端

如果偏好的後端比預設後端更遠,這是預期行為。如不希望發生這種情況,請相應更新每個後端的偏好設定。

使用偏好的後端時,流量不會傳送到部分後端

如果偏好的後端尚未達到容量上限,就會發生這種情況。系統會先根據往返時間延遲,指派偏好的後端。

如要將流量傳送至其他後端,請採取下列任一做法:

  • 更新其他後端的偏好設定。
  • 為偏好的後端設定較低的目標容量設定。目標容量是使用 max-ratemax-utilization 欄位設定,視後端服務的平衡模式而定。

流量隔離

傳送至跨區域內部負載平衡器的要求失敗

如果啟用 STRICT 隔離模式,且負載平衡器所在的區域未設定任何後端,流量預期會失敗。如果這不是您預期的行為,請確認您在預期流量傳送的區域中,有後端。或者,將隔離模式設為 NEAREST,讓流量可以轉送至次近地區。

流量從遠端區域轉送至較近的區域

要求隔離可避免流量超出容量上限。因此,如果啟用這項功能前,後端已過度負載,流量可能已傳送至遠端區域。在這種情況下,開啟這項功能可能會導致流量轉送回最近的區域。

啟用流量隔離後,流量未重新導向

要求隔離可避免流量超出容量上限。因此,如果啟用這項功能前,最近區域的後端並未過度負載,最近區域可能就能處理所有流量。在這種情況下,短期內流量路徑不會有任何變化。這項設定可能會隨著流量變化而改變。

在區域中新增或移除後端時,流量會隨之移動

這是預期行為,因為負載平衡器會嘗試轉送流量,以盡量縮短整體網路延遲時間。因此,當系統在較近的區域部署新的後端時,負載平衡器可能會將更多流量傳送到該區域。同樣地,移除後端時,負載平衡器會根據要求隔離設定,開始將溢位流量傳送至較遠的區域。

限制

  • 每個後端服務只能與單一服務負載平衡政策資源建立關聯。