ALB服務(wù)器組概述
每個服務(wù)器組均用于將客戶端的請求路由至一個或多個后端服務(wù)器。ALB會通過健康檢查來判斷后端服務(wù)器的業(yè)務(wù)可用性。在為ALB實(shí)例添加監(jiān)聽時(shí)您需要指定服務(wù)器組,監(jiān)聽會使用已配置的協(xié)議和端口檢查客戶端的連接請求,并將流量轉(zhuǎn)發(fā)至相應(yīng)的服務(wù)器組。
ALB服務(wù)器組分類及說明
創(chuàng)建ALB服務(wù)器組及添加后端服務(wù)器的操作,請參見創(chuàng)建和管理服務(wù)器組。
服務(wù)器組類型 | 后端服務(wù)器類型 | 說明 | 參考 |
服務(wù)器類型 | 該類型服務(wù)器組支持添加ECS、ENI、ECI實(shí)例作為后端服務(wù)。 | 添加的云服務(wù)器需與服務(wù)器組所屬同一VPC。云服務(wù)器作為后端服務(wù),接收來自ALB轉(zhuǎn)發(fā)的請求。 | 關(guān)于ECS作為后端服務(wù)的教程,請參見: |
IP類型 | 該類型服務(wù)器組支持添加IP地址作為后端服務(wù)。 |
| 關(guān)于跨域掛載的使用限制及相關(guān)教程,請參見: |
函數(shù)計(jì)算類型 | 該類型服務(wù)器組支持添加函數(shù)計(jì)算作為后端服務(wù)。 | 需開通函數(shù)計(jì)算服務(wù),且函數(shù)計(jì)算和ALB實(shí)例屬于同一地域。 | 關(guān)于函數(shù)計(jì)算作為后端服務(wù)的教程,請參見ALB添加函數(shù)計(jì)算FC作為后端服務(wù)。 |
ALB實(shí)例的后端服務(wù)器被釋放或私有IP地址被修改后,ALB不會聯(lián)動更新后端服務(wù)器。建議您在釋放或修改ALB后端服務(wù)器時(shí),先在ALB服務(wù)器組中移除該后端服務(wù)器,確保不影響業(yè)務(wù)。
調(diào)度算法
ALB支持的調(diào)度算法如下。詳細(xì)調(diào)度算法邏輯請參見負(fù)載均衡調(diào)度算法介紹。
加權(quán)輪詢:權(quán)重值越高的后端服務(wù)器,被輪詢到的次數(shù)(概率)也越高。
加權(quán)最小連接數(shù):除了根據(jù)每臺后端服務(wù)器設(shè)定的權(quán)重值來進(jìn)行輪詢,同時(shí)還考慮后端服務(wù)器的實(shí)際負(fù)載(即連接數(shù))。當(dāng)權(quán)重值相同時(shí),當(dāng)前連接數(shù)越小的后端服務(wù)器被輪詢到的次數(shù)(概率)也越高。
一致性哈希:相同的源地址會調(diào)度到相同的后端服務(wù)器。
選擇哈希因子:選擇一種哈希因子。
源IP:相同的源IP地址會調(diào)度到相同的后端服務(wù)器。
URL參數(shù):相同的URL參數(shù)會調(diào)度到相同的后端服務(wù)器。請輸入指定URL參數(shù)。
配置ALB后端協(xié)議與健康檢查協(xié)議
下表總結(jié)了ALB不同監(jiān)聽協(xié)議下后端服務(wù)器及健康檢查協(xié)議的支持情況。
監(jiān)聽協(xié)議 | 服務(wù)器組后端協(xié)議 | 服務(wù)器組類型 | 健康檢查協(xié)議 |
HTTP | HTTP、HTTPS | 服務(wù)器類型、IP類型、函數(shù)計(jì)算類型 說明 函數(shù)計(jì)算的服務(wù)器組類型,無需配置后端協(xié)議和健康檢查協(xié)議。 | HTTP、HTTPS、TCP、gRPC 說明 標(biāo)準(zhǔn)版及以上版本的ALB實(shí)例支持配置HTTPS健康檢查協(xié)議,基礎(chǔ)版ALB實(shí)例不支持。 |
HTTPS | HTTP、HTTPS、gRPC 說明
| ||
QUIC | HTTP |
健康檢查
您可以配置健康檢查來檢查服務(wù)器組的運(yùn)行狀況,從而判斷服務(wù)器的業(yè)務(wù)可用性。
ALB支持基于每個服務(wù)器組定義ALB實(shí)例的健康檢查配置。每個服務(wù)器組默認(rèn)開啟健康檢查。
在開啟健康檢查時(shí),默認(rèn)情況下,ALB會自動將客戶端請求路由至健康檢查狀態(tài)正常的服務(wù)器,并將持續(xù)對該服務(wù)器組的所有后端服務(wù)器的運(yùn)行狀況進(jìn)行監(jiān)控。服務(wù)器必須通過連續(xù)n次的健康檢查才會被視為正常(n為配置的健康檢查健康閾值,多次健康檢查是為了避免網(wǎng)絡(luò)抖動的影響)。
當(dāng)某臺后端服務(wù)器健康檢查出現(xiàn)異常時(shí),ALB會自動將新的請求分發(fā)到其他健康檢查正常的后端服務(wù)器。
當(dāng)該服務(wù)器恢復(fù)正常運(yùn)行時(shí),ALB會將其自動恢復(fù)到負(fù)載均衡服務(wù)中。
健康檢查為短連接,完成健康檢查后連接將關(guān)閉。
如果后端服務(wù)器權(quán)重設(shè)置為0,該服務(wù)器不會參與健康檢查。
如果同一個服務(wù)器組中僅包含健康檢查異常的服務(wù)器時(shí),ALB仍會嘗試根據(jù)調(diào)度算法將請求路由至這些服務(wù)器,而不考慮這些服務(wù)器的運(yùn)行狀況,以最大可能避免您的業(yè)務(wù)受損。更多信息,請參見同一個服務(wù)器組的所有后端服務(wù)器健康檢查均異常時(shí),ALB如何轉(zhuǎn)發(fā)請求?。
更多信息,請參見健康檢查。
會話保持
默認(rèn)情況下,ALB會將每個客戶端請求分別分發(fā)至不同的后端服務(wù)器上。當(dāng)您開啟了會話保持功能后,會話保持可以使來自同一客戶端的請求被轉(zhuǎn)發(fā)至同一臺后端服務(wù)器上,方便后端服務(wù)器維護(hù)狀態(tài)信息及向客戶端提供持續(xù)體驗(yàn)。
未開啟會話保持:同一客戶端的請求通過ALB可能會被分發(fā)至不同的后端服務(wù)器,在某些場景下,如登錄后端服務(wù)器獲取交互信息等場景,客戶端的請求可能需重新登錄后端服務(wù)器。
開啟會話保持:同一客戶端的請求通過ALB被分配至同一臺后端服務(wù)器,而非分配至不同的后端服務(wù)器,在某些場景下,如登錄后端服務(wù)器獲取交互信息等場景,避免了客戶端的請求需要重新登錄后端服務(wù)器。
函數(shù)計(jì)費(fèi)類型的服務(wù)器組不支持配置會話保持。
更多信息,請參見ALB配置會話保持。
后端長連接
當(dāng)開啟后端長連接后,ALB到后端服務(wù)器之間會維持一定數(shù)量的TCP長連接,當(dāng)新請求到達(dá)時(shí),如果有空閑的TCP長連接,ALB優(yōu)先使用TCP長連接轉(zhuǎn)發(fā)請求到后端服務(wù)器,從而減少TCP握手建連次數(shù),減輕后端服務(wù)器壓力。
函數(shù)計(jì)算類型的服務(wù)器組不支持配置后端長連接。
更多信息,請參見創(chuàng)建服務(wù)器組。