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


13

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

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

但是有关Newvem的文章说ELB仅支持Round Robin算法

Amazon ELB支持的算法 -当前,Amazon ELB仅支持Round Robin(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
除非有理由相信我,否则我会选择一个随机博客上超过一年的官方文档,但未提供相关资源。不过,请注意,“负载最小的实例”仅适用于特定区域-如果您在区域A中有一个实例,在区域B中有两个实例,则AWS控制台会警告您请求将不平衡。
ceejayoz

“但是,请注意,“负载最小的实例”仅适用于特定区域” <官方文档中是否提到过?
2013年

我敢肯定在某处提到了它,但是当您将实例添加到ELB时,肯定在AWS控制台中提到了它。这是屏幕截图:cl.ly/image/251m3g1b0E1n
ceejayoz 2013年

阿卜杜勒(Abdul),请接受正确的答案,这是crizCraig的答案。
tedder42

Answers:


14

它是基于HTTP(S)的请求计数,其他则是循环轮询。

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

在客户端向负载均衡器发送请求之前,它首先使用域名系统(DNS)服务器解析负载均衡器的域名。DNS服务器使用DNS轮询来确定特定可用区中的哪个负载平衡器节点将接收请求。

然后,选定的负载均衡器节点将请求发送到同一可用区内的正常实例。为了确定运行状况良好的实例,负载均衡器节点使用轮询(对于TCP连接)或最少未解决的请求(对于HTTP / HTTPS连接)路由算法。最不突出的请求路由算法更喜欢连接或未完成的请求最少的后端实例。


2
该信息有些过时了。如果跨区域功能已关闭,则负载平衡器只会将请求发送到同一可用性区域内的正常实例。启用了跨区域功能的默认设置,因此,负载平衡器将使用对HTTP / HTTPS的请求最少的请求和对TCP连接的轮询机制,向注册到负载平衡器的任何正常实例发送请求。
ColtonCat

嘿,@ ColtonCat您可以链接信息的来源
吗?-murarisumit


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 algorithmHTTP和HTTPS监听器

TLDR;

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

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

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

By using our site, you acknowledge that you have read and understand our Cookie Policy and Privacy Policy.
Licensed under cc by-sa 3.0 with attribution required.