我在ELB官方文件中找到了這個
預設情況下,負載平衡器將每個請求獨立路由到負載最小的應用程式實例。
但是Newvem上的一篇文章說ELB只支援Round Robin演算法
Amazon ELB 支援的演算法- 目前 Amazon ELB 僅支援循環 (RR) 和會話黏性演算法。
那麼是哪一個呢?
[1]http://docs.aws.amazon.com/ElasticLoadBalancing/latest/DeveloperGuide/US_StickySessions.html
答案1
HTTP(S) 的請求計數是基於請求計數,其他請求計數則基於迴圈。
在客戶端向負載平衡器發送請求之前,它首先使用網域名稱系統 (DNS) 伺服器解析負載平衡器的網域名稱。 DNS 伺服器使用 DNS 迴圈來決定特定可用區中的哪個負載平衡器節點將接收請求。
然後,選定的負載平衡器節點將請求傳送到同一可用區內的健康實例。為了確定運作狀況良好的實例,負載平衡器節點使用循環(對於 TCP 連線)或最少未完成請求(對於 HTTP/HTTPS 連線)路由演算法。最少未完成請求路由演算法有利於具有最少連接或未完成請求的後端實例。
答案2
這取決於所使用的 ELB 類型。隨著時間的推移,AWS 推出了應用程式 ELB 和網路 ELB 以及經典 ELB。
Application Load Balancers
應用偵聽器規則並將 (HTTP/HTTPS) 請求指派給目標群組。它使用以下方法從該目標群組中選擇一個目標round robin routing algorithm
Network Load Balancers
接收連接的節點,使用以下命令從其目標群組中選擇一個目標flow hash routing algorithm
Classic Load Balancers
用於round robin routing algorithm
TCP 偵聽器以及least outstanding requests routing algorithm
HTTP 和 HTTPS 偵聽器
。
太長了;
現代 ELB 用於
round robin routing algorithm
HTTP/HTTPS 請求和flow hash routing algorithm
TCP 請求。
round robin routing algorithm
用於 TCP 請求以及least outstanding requests routing algorithm
HTTP 和 HTTPS 請求的經典 ELB