AWS使用ELB为多实例应用创建负载均衡问题

目录

Application Load Balancing 概述

问题描述

解决方法


Application Load Balancing 概述

Elastic Load Balancing 在一个或多个可用区中的多个目标(如 EC2 实例、容器和 IP 地址)之间自动分配传入的流量。它会监控已注册目标的运行状况,并仅将流量传输到运行状况良好的目标。Elastic Load Balancing 根据传入流量随时间的变化对负载均衡器进行扩展。它可以自动扩展来处理绝大部分工作负载。

Elastic Load Balancing 支持以下负载均衡器:Application Load Balancer、Network Load Balancer、Gateway Load Balancer 和 Classic Load Balancer。

Application Load Balancer 在应用程序层正常工作,该层是开放系统互连 (OSI) 模型的第 7 层。负载均衡器收到请求后,将按照优先级顺序评估侦听器规则以确定应用哪个规则,然后从目标组中选择规则操作目标。可以配置侦听器规则,以根据应用程序流量的内容,将请求路由至不同的目标组。每个目标组的路由都是单独进行的,即使某个目标已在多个目标组中注册。可以配置目标组级别使用的路由算法。默认路由算法为轮询路由算法;或者,可以指定最少未完成请求路由算法。

可以根据需求变化在负载均衡器中添加和删除目标,而不会中断应用程序的整体请求流。Elastic Load Balancing 根据传输到应用程序的流量随时间的变化对负载均衡器进行扩展。Elastic Load Balancing 能够自动扩展来处理绝大部分工作负载。

您可以配置运行状况检查,这些检查可用来监控注册目标的运行状况,以便负载均衡器只能将请求发送到正常运行的目标。

负载均衡器接受来自客户端的传入流量并将请求路由到一个或多个可用区中的已注册目标 (例如 EC2 实例)。负载均衡器还会监控已注册目标的运行状况,并确保它只将流量路由到正常运行的目标。当负载均衡器检测到不正常目标时,它会停止将流量路由到该目标。然后,当它检测到目标再次正常时,它会恢复将流量路由到该目标。

您可通过指定一个或多个侦听器将您的负载均衡器配置为接受传入流量。侦听器是用于检查连接请求的进程。它配置了用于从客户端连接到负载均衡器的协议和端口号。同样,它配置了用于从负载均衡器连接到目标的协议和端口号。

问题描述

对于一个单体应用,我们在两个ec2实例上分别部署,并通过alb对其进行负载均衡

在我们配置alb上的监听器(listener)到目标后端服务器组(target group)后,发现无法分配后端服务器组内实例的权重占比。

和阿里云的slb以及华为云的elb不同的是,aws的alb的一个监听器可以绑定多个target group,而前两者一个监听器只能绑定一个后端服务器组。因此aws是修改不同target group组的权重,而华为云和阿里云是修改后段服务器组内的不同实例的权重

AWS使用ELB为多实例应用创建负载均衡问题_第1张图片

解决方法

因为在单体应用的发布过程中我们需要分批滚动发布,或者在手动发布的过程中需要灰度发布,aws的target group可以把单个实例的流量摘掉,但无法调整target group组里不同实例的权重,也就只能做基本的滚动发布。为了让其也能满足灰度发布的条件,只能通过为每个实例创建不同的target group,即实现target group和实例的一对一绑定,就可以调整每个实例的权重了

AWS使用ELB为多实例应用创建负载均衡问题_第2张图片

你可能感兴趣的:(aws,云原生,华为云,阿里云,aws)