更新时间:2024-04-08 GMT+08:00

弹性负载均衡是如何工作的

图1 ELB工作原理图

弹性负载均衡的工作原理如下:

  1. 客户端向您的应用程序发出请求。
  2. 负载均衡器中的监听器接收与您配置的协议和端口匹配的请求。
  3. 监听器再根据您的配置将请求转发至相应的后端服务器组。如果配置了转发策略,监听器会根据您配置的转发策略评估传入的请求,如果匹配,请求将被转发至相应的后端服务器组。
  4. 后端服务器组中健康检查正常的后端服务器将根据分配策略和您在监听器中配置的转发策略的路由规则接收流量,处理流量并返回客户端。

请求的流量分发与负载均衡器所绑定的监听器配置的转发策略和后端服务器组配置的分配策略类型相关。

分配策略类型

独享型负载均衡支持加权轮询算法、加权最少连接、源IP算法、连接ID算法,共享型负载均衡支持加权轮询算法、加权最少连接、源IP算法。

  • 加权轮询算法:根据后端服务器的权重,按顺序依次将请求分发给不同的服务器。它用相应的权重表示服务器的处理性能,按照权重的高低以及轮询方式将请求分配给各服务器,权重大的后端服务器被分配的概率高。相同权重的服务器处理相同数目的连接数。常用于短连接服务,例如HTTP等服务。

    图2展示弹性负载均衡器使用加权轮询算法的流量分发流程。假设可用区内有2台权重相同的后端服务器,负载均衡器节点会将50%的客户端流量分发到其可用区中的每一台后端服务器。

    图2 加权轮询算法流量分发
  • 加权最少连接:最少连接是通过当前活跃的连接数来估计服务器负载情况的一种动态调度算法。加权最少连接就是在最少连接数的基础上,根据服务器的不同处理能力,给每个服务器分配不同的权重,使其能够接受相应权值数的服务请求。常用于长连接服务,例如数据库连接等服务。

    图3展示弹性负载均衡器使用加权最少连接算法的流量分发流程。假设可用区内有2台权重相同的后端服务器,ECS 01已有100个连接,ECS 02已有50个连接,则新的连接会优先分配到ECS 02上。

    图3 加权最少连接算法流量分发
  • 源IP算法:将请求的源IP地址进行一致性Hash运算,得到一个具体的数值,同时对后端服务器进行编号,按照运算结果将请求分发到对应编号的服务器上。这可以使得对不同源IP的访问进行负载分发,同时使得同一个客户端IP的请求始终被派发至某特定的服务器。该方式适合负载均衡无cookie功能的TCP协议。

    图4展示弹性负载均衡器使用源IP算法的流量分发流程。假设可用区内有2台权重相同的后端服务器,ECS 01已经处理了一个IP-A的请求,则IP-A新发起的请求会自动分配到ECS 01上。

    图4 源IP算法流量分发
  • 连接ID算法:利用报文里的连接ID字段进行一致性hash算法,得到一个具体的数值,同时对后端服务器进行编号,按照运算结果将请求分发到对应编号的服务器上。这可以使得对不同连接ID的访问进行负载分发,同时使得同一个连接ID的请求始终被派发至某特定的服务器。该方式适合于负载均衡QUIC协议应用的报文流。

    当前仅独享型负载均衡支持连接ID算法。

    图5展示弹性负载均衡器使用连接ID算法的流量分发流程。假设可用区内有2台权重相同的后端服务器,ECS 01已经处理了一个客户端A的请求,则客户端A的新发起的请求会自动分配到ECS 01上。

    图5 连接ID算法流量分发

影响负载均衡的因素

一般情况下,影响负载均衡分配的因素包括分配策略、会话保持、长连接、权重等。换言之,最终是否均匀分配不仅与分配策略相关,还与使用的长短连接、后端的性能负载等相关。

假设可用区内有2台权重相同且不为0的后端服务器,流量分配策略选择“加权最少连接”,未开启会话保持,ECS 01已有100个连接,ECS 02已有50个连接。

如果有客户端A使用长连接访问了ECS 01,长连接未断开期间,客户端A的业务流量将持续转发到ECS 01,其他客户端的业务流量则根据分配策略优先分配到ECS 02。

后端服务器健康检查异常或权重设置为0时,ELB不会转发业务流量到该后端服务器。

配置流量分配策略请参考流量分配策略

检查请求不均衡请参考如何检查请求不均衡