AWS本身是否支持加权负载平衡?
从我看来,ELB仅支持循环负载平衡(没有任何可配置的权重)。但我没有找到可靠的文档。
我能想到的最简单的事情就是在它前面放置一个像Nginx这样的负载均衡器,例如:
upstream backend {
server backend1.example.com weight=1;
server backend2.example.com weight=2;
server backend3.example.com weight=4;
}
在这里,七个请求中,一个将转到backend1,两个转到backend2,另外四个转到backend4。
它会起作用,但这也意味着你必须为此设置一个带有Nginx的服务器。如果AWS将直接支持加权负载平衡,那将更容易设置。
答案 0 :(得分:3)
How Elastic Load Balancing Works文档页面说明:
使用经典负载均衡器,接收请求的负载均衡器节点使用循环路由算法(适用于TCP侦听器)和选择已注册的实例针对HTTP和HTTPS侦听器的未完成请求路由算法。
使用应用程序负载均衡器,接收请求的负载均衡器节点按优先级顺序评估侦听器规则,以确定要应用的规则,然后从目标组中为规则选择目标使用循环路由算法的操作。即使目标在多个目标组中注册,也会为每个目标组独立执行路由。
Elastic Load balance服务不支持加权循环(您指定权重)。
您可以将Amazon Route 53与加权路由策略一起使用。从Choosing a Routing Policy文档页面:
当您有多个执行相同功能的资源(例如,服务于同一网站的Web服务器)并且您希望Amazon Route 53将流量路由到这些资源时,请使用加权路由策略您指定的比例(例如,四分之一到一个服务器,四分之三到另一个)。
答案 1 :(得分:2)
您可以将Route53 weight路由直接用于您的服务器或多个ELB
答案 2 :(得分:2)
如果您使用 AWS Route 53 作为DNS服务,则可以在DNS记录上配置权重年龄。
Amazon Route 53支持加权循环法。加权循环法 允许您为资源记录集分配权重 指定提供不同响应的频率。您 可能想用这个功能进行A / B测试,发送一个小的 到您进行软件更改的服务器的流量的一部分。 例如,假设您有两个与一个DNS关联的记录集 名称 - 一个体重3和一个体重1.在这种情况下,75%的体重 时间路线53将返回重量为3和25%的记录集 时间路线53将返回重量为1的记录集。权重可以是 0到255之间的任何数字。
答案 3 :(得分:1)
基于AWS新功能的更新
最初,您无法在LoadBalancer上执行加权路由。但是,最近发生了改变
如果您正在使用应用程序负载平衡器,则可以设置将使用加权策略的ListenerRule。
步骤:
您可以在此处查看有关此内容的AWS博客文章:https://aws.amazon.com/blogs/aws/new-application-load-balancer-simplifies-deployment-with-weighted-target-groups/