我在正式的ELB文档中find了这个
缺省情况下,负载均衡器将每个请求独立路由到负载最小的应用程序实例。
但是Newvem上的一篇文章说ELB只支持Round Robinalgorithm
Amazon ELB支持的algorithm – 目前Amazon ELB仅支持循环(RR)和会话粘性algorithm。
那么哪一个呢?
[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
它是基于HTTP(S)的请求计数,其他的循环。
在客户端向您的负载均衡器发送请求之前,它首先使用域名系统(DNS)服务器parsing负载均衡器的域名。 DNS服务器使用DNS轮询来确定特定可用区中的哪个负载均衡器节点将接收请求。
所选的负载均衡器节点然后将请求发送到同一可用区内的正常实例。 为了确定正常的实例,负载均衡器节点使用循环(用于TCP连接)或最不重要的请求(用于HTTP / HTTPS连接)路由algorithm。 最不重要的请求路由algorithm支持具有最less连接或未完成请求的后端实例。
这取决于所使用的ELBtypes。 AWS一直在推出应用ELB和networkingELB以及经典ELB。
Application Load Balancers
应用侦听器规则并将(HTTP / HTTPS)请求分配给目标组。 它使用round robin routing algorithm
从目标组中select一个目标
接收连接的Network Load Balancers
节点使用flow hash routing algorithm
从目标组中select一个目标
Classic Load Balancers
使用TCP侦听Classic Load Balancers
round robin routing algorithm
和HTTP和HTTPS侦听器的least outstanding requests routing algorithm
。
TLDR;
现代的ELB使用
round robin routing algorithm
来处理HTTP / HTTPS请求,并使用flow hash routing algorithm
来处理TCP请求。经典的ELB对于TCP请求使用
round robin routing algorithm
,对于HTTP和HTTPS请求使用least outstanding requests routing algorithm
来源/进一步阅读: http : //docs.aws.amazon.com/elasticloadbalancing/latest/userguide/how-elastic-load-balancing-works.html