弹性负载均衡是如何工作的
工作原理
弹性负载均衡的工作原理如下:
- 客户端向您的应用程序发出请求。
- 负载均衡器中的监听器接收与您配置的协议和端口匹配的请求。
- 监听器再根据您的配置将请求转发至相应的后端服务器组。如果配置了转发策略,监听器会根据您配置的转发策略评估传入的请求,如果匹配,请求将被转发至相应的后端服务器组。
- 后端服务器组中健康检查正常的后端服务器将根据分配策略和您在监听器中配置的转发策略的路由规则接收流量,处理流量并返回客户端。
加权轮询算法
图2展示弹性负载均衡器使用加权轮询算法的流量分发流程。假设可用区内有2台权重相同的后端服务器,负载均衡器节点会将50%的客户端流量分发到其可用区中的每一台后端服务器。
概述 |
加权轮询算法根据组内后端服务器设置的权重,依次将请求分发给不同的服务器。权重大的后端服务器被分配的概率高,相同权重的服务器处理相同数目的连接数。 |
---|---|
推荐场景 |
加权轮询算法常用于短连接服务,例如HTTP等服务。
|
缺点 |
|
加权最少连接
图3展示弹性负载均衡器使用加权最少连接算法的流量分发流程。假设可用区内有2台权重相同的后端服务器,ECS 01已有100个连接,ECS 02已有50个连接,则新的连接会优先分配到ECS 02上。
概述 |
最少连接是通过当前活跃的连接数来评估服务器负载情况的一种动态负载均衡算法。加权最少连接就是在最少连接数的基础上,根据服务器的不同处理能力,给每个服务器分配不同的权重,使其能够接受相应权值数的服务请求。 |
---|---|
推荐场景 |
加权最少连接常用于长连接服务,例如数据库连接等服务。
|
缺点 |
|
源IP算法
图4展示弹性负载均衡器使用源IP算法的流量分发流程。假设可用区内有2台权重相同的后端服务器,ECS 01已经处理了一个IP-A的请求,则IP-A新发起的请求会自动分配到ECS 01上。
概述 |
根据请求的源IP地址进行一致性哈希计算,源IP地址相同的请求会被分配到同一台后端服务器。 |
---|---|
推荐场景 |
源IP算法常用于需要保持用户状态或会话的应用。
|
缺点 |
|
连接ID算法
图5展示弹性负载均衡器使用连接ID算法的流量分发流程。假设可用区内有2台权重相同的后端服务器,ECS 01已经处理了一个客户端A的请求,则客户端A上新发起的请求会自动分配到ECS 01。
概述 |
根据QUIC 协议请求的QUIC ID进行哈希计算,相同QUIC连接上的请求会被分配到同一台后端服务器。QUIC ID是QUIC连接的唯一标识符,连接ID算法可以实现基于连接级别的负载均衡。 仅QUIC协议的后端服务器组支持连接ID算法。 |
---|---|
推荐场景 |
连接ID算法常用于实现连接级别负载均衡的应用。
|
缺点 |
|
影响负载均衡的因素
一般情况下,影响负载均衡分配的因素包括分配策略、会话保持、长连接、权重等。换言之,最终是否均匀分配不仅与分配策略相关,还与使用的长短连接、后端的性能负载等相关。
假设可用区内有2台权重相同且不为0的后端服务器,流量分配策略选择“加权最少连接”,未开启会话保持,ECS 01已有100个连接,ECS 02已有50个连接。
如果有客户端A使用长连接访问了ECS 01,长连接未断开期间,客户端A的业务流量将持续转发到ECS 01,其他客户端的业务流量则根据分配策略优先分配到ECS 02。
后端服务器健康检查异常或权重设置为0时,ELB不会转发业务流量到该后端服务器。
配置流量分配策略请参考流量分配策略。
检查请求不均衡请参考如何检查请求不均衡?。