全部產品
Search
文件中心

Server Load Balancer:使用ALB實現gRPC協議的負載平衡

更新時間:Jun 19, 2024

gRPC是一種高效能、開源的遠端程序呼叫架構,當您使用gRPC進行後端服務通訊時,您可使用應用型負載平衡ALB(Application Load Balancer)實現gRPC協議的負載平衡,統一流量入口。gRPC基於HTTP/2協議進行通訊,目前ALB僅支援前端加密(通過HTTPS監聽)和後端明文(伺服器組後端協議為gRPC)的形態。

背景資訊

gRPC是一種高效能、開源的遠端程序呼叫架構,它使用Protocol Buffers作為介面定義語言(IDL)和基於HTTP/2協議進行通訊。

gRPC用於構建分布式系統中的服務通訊。它解決了不同服務之間的跨語言通訊問題,並提供了強大的IDL和自動產生的程式碼,使得開發人員可以方便地定義和調用遠程服務。同時,gRPC具有高效能、低延遲和高效的資料轉送,通過採用二進位編碼和HTTP/2的多工特性,提供了快速、可靠的遠程調用體驗。

gRPC適用於微服務架構、跨語言通訊、大規模分布式系統等情境。特別是在需要高效能和低延遲的情境下,gRPC能夠提供卓越的效能。它還支援多種調用方式,如簡單調用、流式請求和響應、雙向流等,可以靈活地滿足不同業務需求。

關於gRPC的更多資訊,可參考gRPC官方文檔

情境樣本

某公司在華東1(杭州)地區的Virtual Private Cloud(Virtual Private Cloud)內部署了gRPC服務,在VPC中建立了ALB執行個體和支援gRPC協議的後端伺服器組,ALB配置了HTTPS監聽並開啟HTTP2.0開關,同時後端伺服器組配置了gRPC協議的健全狀態檢查。

用戶端需要通過ALB執行個體來訪問VPC中部署的gRPC服務。

前提條件

步驟一:建立伺服器組並添加後端伺服器

  1. 登入應用型負載平衡ALB控制台

  2. 在頂部功能表列處,選擇所屬的地區。

  3. 在左側導覽列,選擇應用型負載均衡 ALB > 伺服器組

  4. 伺服器組頁面,單擊建立伺服器組

  5. 建立伺服器組對話方塊中,完成以下配置。完成後單擊建立

    此處僅列出和本文強相關的配置項,其他未列出的配置項可使用預設值或自行配置。

    配置

    說明

    伺服器群組類型

    選擇一種伺服器群組類型。本文選擇伺服器類型

    VPC

    從VPC下拉式清單中選擇ALB所屬的VPC,只有該VPC下的伺服器可以加入到該伺服器組。

    選擇後端協議

    本文選擇gRPC

    開啟健全狀態檢查

    本文選擇開啟健全狀態檢查。

    健全狀態檢查配置

    單擊編輯,修改健全狀態檢查配置資訊:

    • 健康檢查合約:本文選擇gRPC

    • 健全狀態檢查方法:本文選擇POST

    • 健康狀態返回碼:選擇健全狀態檢查正常的狀態代碼,需要與後端gRPC服務配置一致。本文樣本為12

  6. 伺服器組頁面找到目標伺服器組,單擊其執行個體ID。

  7. 單擊後端伺服器頁簽,然後單擊新增後端伺服器

  8. 新增後端伺服器面板,選擇已建立的ECS執行個體,然後單擊下一步

  9. 配置連接埠和權重設定精靈,設定ECS的連接埠和權重,然後單擊確定

    說明

    此處ECS配置的連接埠必須要與實際部署的gRPC服務設定的連接埠保持一致。同時注意安全性群組規則需要允許存取相關連接埠。

步驟二:配置HTTPS監聽

  1. 登入應用型負載平衡ALB控制台

  2. 在頂部功能表列,選擇執行個體所屬的地區。

  3. 在左側導覽列,選擇執行個體

  4. 執行個體頁面,找到目標執行個體,然後在操作列單擊建立監聽

  5. 配置監聽頁面配置以下資訊,其他參數可保持預設值或根據實際情況修改。完成後單擊下一步

    配置

    說明

    選擇監聽協議

    選擇HTTPS

    監聽連接埠

    本文配置連接埠443。

    說明
    • 伺服器組設定後端協議為gRPC時,監聽協議類型只支援HTTPS。

    • gRPC基於HTTP/2協議進行通訊,伺服器組設定後端協議為gRPC時,HTTPS監聽必須開啟HTTP2.0。ALB預設啟用該功能,需要確保啟用HTTP2.0功能為已開啟,請勿關閉。

  6. 配置SSL認證頁面配置以下資訊,其他參數可保持預設值或根據實際情況修改。完成後單擊下一步

    配置

    說明

    選擇伺服器憑證

    選擇準備的SSL認證。

  7. 選擇伺服器組頁面配置以下資訊,其他參數可保持預設值或根據實際情況修改。完成後單擊下一步

    配置

    說明

    選擇伺服器組

    選擇此前已建立好的gRPC伺服器組。

  8. 組態稽核頁面,檢查配置參數是否有誤,無誤的話單擊提交,等待監聽建立完成。

步驟三:佈建網域名解析

  1. 登入應用型負載平衡ALB控制台

  2. 在頂部功能表列選擇地區。

  3. 選擇要進行網域名稱解析的ALB執行個體,複製其對應的DNS名稱。

  4. 完成以下步驟來添加CNAME解析記錄。

    1. 登入網域名稱解析控制台

    2. 網域名稱解析頁面單擊添加網域名稱

    3. 添加網域名稱對話方塊中輸入您的主機網域名稱,然後單擊確認

      重要

      您的主機網域名稱需已完成TXT記錄驗證。

    4. 在目標網域名稱的操作列單擊解析設定

    5. 解析設定頁面單擊添加記錄

    6. 添加記錄面板配置以下資訊完成CNAME解析配置,然後單擊確認

      配置

      說明

      記錄類型

      在下拉式清單中選擇CNAME

      主機記錄

      您的網域名稱的首碼。

      解析請求來源

      選擇預設。

      記錄值

      輸入欄位名對應的CNAME地址,即您複製的ALB執行個體的DNS名稱。

      TTL

      全稱Time To Live,表示DNS記錄在DNS伺服器上的緩衝時間,本文使用預設值。

步驟四:驗證連通性

完成上述操作後,用戶端可以通過ALB訪問部署了gRPC服務的後端伺服器,以下內容為您展示如何測試用戶端和gRPC服務之間的連通性。

說明

瀏覽器無法直接存取gRPC服務。建議您通過grpcurl工具之類的測試載入器驗證訪問。

在用戶端中執行grpcurl -insecure -v <自訂網域名或ALB網域名稱>:<監聽連接埠> <gRPC服務名稱>/<方法>命令嘗試訪問ECS中的gRPC服務。

如果收到類似下圖所示的回複報文,則表示用戶端可以通過ALB訪問部署了gRPC服務的後端伺服器ECS。測試結果

相關文檔