Warning: file_get_contents(/data/phpspider/zhask/data//catemap/1/amazon-web-services/12.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Amazon web services Amazon EC2负载均衡器上的负载平衡算法_Amazon Web Services_Amazon Ec2_Load Balancing_Amazon Elb - Fatal编程技术网

Amazon web services Amazon EC2负载均衡器上的负载平衡算法

Amazon web services Amazon EC2负载均衡器上的负载平衡算法,amazon-web-services,amazon-ec2,load-balancing,amazon-elb,Amazon Web Services,Amazon Ec2,Load Balancing,Amazon Elb,我们计划在托管在一些AmazonEC2实例上的网站上进行一些性能测试。问题是,如果所有HTTP流量都来自相同的IP地址(例如,在许多不同的客户端主机共享相同的公共IP的情况下),EC2负载平衡器是否会将所有流量仅转发到一个web服务器(实例) 过去就是这样,我想这可能还是个问题。它不会将所有流量转发到单个实例,但可以将所有流量发送到单个区域 ELB使用DNS循环进行一些负载平衡。缓存的DNS查找可能会导致多个请求被路由到同一区域。这曾经是一个问题,因为客户端确实进行了DNS缓存(请参阅我对的回答

我们计划在托管在一些AmazonEC2实例上的网站上进行一些性能测试。问题是,如果所有HTTP流量都来自相同的IP地址(例如,在许多不同的客户端主机共享相同的公共IP的情况下),EC2负载平衡器是否会将所有流量仅转发到一个web服务器(实例)

过去就是这样,我想这可能还是个问题。它不会将所有流量转发到单个实例,但可以将所有流量发送到单个区域


ELB使用DNS循环进行一些负载平衡。缓存的DNS查找可能会导致多个请求被路由到同一区域。

这曾经是一个问题,因为客户端确实进行了DNS缓存(请参阅我对的回答,以了解有关以前状态的更多信息),但最近引入的以下技术显然已基本解决了这一问题:

我们很高兴宣布支持跨区域负载平衡,这改变了弹性负载平衡(ELB)路由传入请求的方式,使您更容易跨多个可用性区域部署应用程序。[我的重点]

这些公告已经提供了更多的信息,但有关详细信息,请链接到:

如果启用跨区域负载平衡,就不必担心客户端缓存DNS信息会导致请求分布不均匀。现在,ELB确保请求被平等地分配到后端实例,而不管它们位于哪个可用性区域。[我的重点]


这仍然没有概括出所使用的确切算法,但不均匀分布的主要来源似乎是这样解决的(我最近读了一位AWS大客户的帖子,他报告说他们的指标在打开开关后或多或少变成了平曲线,但现在不记得URL)。

感谢您的洞察力。想知道是否有链接到AWS中负载平衡器的工作原理描述。理论上,负载平衡器可以通过插入额外的cookie(特定于负载平衡器)来分散来自同一IP的请求。不知道它是否在AWS负载平衡器上实现。最好使用多台机器的负载测试。您可以像这样生成更多负载,并使用ELB获得更现实的负载平衡。更多的机器可以产生更多的负载。不幸的是,这是我们的限制,因为我们从同一台机器生成负载。感谢Steffen提供更多信息。我看到的是一个极端情况,所有用户都将从相同的IP地址访问一个网站(托管在AWS中)(例如,如果所有用户共享相同的公共IP)。想知道ELB是否会对不同主机的请求进行负载平衡。注意,这里有一个陷阱:来自相同用户的请求通常需要转发到相同的服务器实例。如果ELB插入自己的cookie,它可以使用它来判断请求是否来自同一个用户。