Amazon ELB 使用什么算法来平衡负载?

Amazon ELB 使用什么算法来平衡负载?

我在 ELB 官方文档中找到了这一点

默认情况下,负载均衡器将每个请求独立路由到负载最小的应用程序实例。

但是 Newvem 上的一篇文章说 ELB 仅支持 Round Robin 算法

Amazon ELB 支持的算法- 目前,Amazon ELB 仅支持循环 (RR) 和会话粘性算法。

那么是哪一个呢?

[1]http://docs.aws.amazon.com/ElasticLoadBalancing/latest/DeveloperGuide/US_StickySessions.html

[2]http://www.newvem.com/dissecting-amazon-elastic-load-balancer-elb-18-facts-you-should-know/?lead_source=popup_ebook&oid=00DD0000000lsYR&email=muneeb%40olacabs.com

答案1

对于 HTTP(S),请求计数基于此;对于其他,则采用循环方式。

http://docs.aws.amazon.com/ElasticLoadBalancing/latest/DeveloperGuide/TerminologyandKeyConcepts.html#request-routing

在客户端将请求发送到负载均衡器之前,它首先使用域名系统 (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 algorithmTCP 侦听器以及least outstanding requests routing algorithmHTTP 和 HTTPS 侦听器

TLDR;

现代 ELB 用于round robin routing algorithmHTTP/HTTPS 请求和flow hash routing algorithmTCP 请求。

round robin routing algorithm用于 TCP 请求以及least outstanding requests routing algorithmHTTP 和 HTTPS 请求的经典 ELB

来源/进一步阅读:https://docs.aws.amazon.com/elasticloadbalancing/latest/userguide/how-elastic-load-balancing-works.html#routing-algorithm

相关内容