我在 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 侦听器
。
TLDR;
现代 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