【问题标题】:The loadbalancing algorithm on Amazon EC2 loadbalancerAmazon EC2 负载均衡器上的负载均衡算法
【发布时间】:2014-01-14 09:53:02
【问题描述】:

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

【问题讨论】:

  • 最好使用多台机器的负载测试。您可以像这样生成更多负载,并使用 ELB 获得更真实的负载平衡。
  • 同意。更多的机器可以产生更多的负载。不幸的是,我们的限制是我们从同一台机器生成负载。

标签: amazon-web-services amazon-ec2 load-balancing amazon-elb


【解决方案1】:

这曾经是一个问题,因为客户端的 DNS 缓存确实是一个问题(请参阅我对 Can Elastic Load Balancers correctly distribute traffic to different size instances 的回答以了解更多关于以前的事态),但最近引入 Elastic Load Balancing [...] Cross-Zone Load Balancing 显然已经大部分得到纠正:

我们很高兴地宣布支持跨区域负载均衡,这会改变 Elastic Load Balancing (ELB) 路由传入请求的方式,让您更轻松地跨多个可用性部署应用程序区域。 [强调我的]

公告已经提供了更多信息,但链接到Request Routing了解详细信息:

如果启用跨区域负载平衡,您再也不用担心客户端缓存 DNS 信息会导致请求分布不均。现在,ELB 可确保将请求平均分配到您的后端实例,无论它们位于哪个可用区。 [强调我的]

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

【讨论】:

  • 感谢 Steffen 提供更多信息。我正在寻找一个极端情况,即所有用户都将从相同的 IP 地址访问一个网站(托管在 AWS 中)(例如,如果用户都共享相同的公共 IP)。想知道 ELB 是否会将请求负载平衡到不同的主机。请注意,有一个问题:来自同一用户的请求通常需要转发到同一服务器实例。如果 ELB 插入自己的 cookie,它可以使用它来判断请求是否来自同一用户。
【解决方案2】:

过去就是这种情况,我认为它仍然可能是一个问题。与其说它会将所有流量转发到单个实例,不如说它可以将所有流量发送到单个区域。

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

【讨论】:

  • 感谢您的洞察力。想知道是否有任何关于 AWS 中负载均衡器如何工作的描述的链接。理论上,负载均衡器可以通过插入额外的 cookie(特定于负载均衡器)来扇出来自同一 IP 的请求。不知道是否在 AWS 负载均衡器上实现。
猜你喜欢
  • 1970-01-01
  • 2013-08-26
  • 2021-12-07
  • 1970-01-01
  • 2023-04-05
  • 2015-08-19
  • 1970-01-01
  • 1970-01-01
  • 2011-01-24
相关资源
最近更新 更多