负载均衡会根据配置的调度算法,将来自客户端的请求按照对应的算法规则转发至相应的后端服务器。负载均衡支持轮询、加权轮询、加权最小连接数、一致性哈希等多种调度算法,用于支持不同的业务场景。
本文列出所有负载均衡系列产品支持的调度算法,不同负载均衡产品支持的调度算法不同。
应用型负载均衡ALB:加权轮询、加权最小连接数、一致性哈希(源IP、URL参数)。
网络型负载均衡NLB:轮询、加权轮询、加权最小连接数、一致性哈希(源IP、四元组、QUIC ID)。
传统型负载均衡CLB:轮询、加权轮询、一致性哈希(源IP、四元组、QUIC ID)。
轮询算法
介绍
轮询算法按照访问顺序将外部请求依序分发到后端服务器。轮询算法常用于短连接服务,例如HTTP等服务。
例如负载均衡后端服务器组挂载了2个ECS,则客户端新请求将在后端服务器之间轮流分发。
加权轮询算法
介绍
加权轮询算法在轮询算法的基础上引入了权重的概念,对服务器的负载分配更加灵活。权重值越高的后端服务器,被轮询到的概率也越高。加权轮询算法常用于短连接服务,例如HTTP等服务。
例如负载均衡后端服务器组挂载了2个ECS,分配的权重分别为60、40,则客户端新请求转发到相应后端服务器的概率为60%、40%。
加权最小连接数算法
介绍
加权最小连接数算法除了根据每台后端服务器设定的权重值来进行轮询,同时还考虑负载均衡服务与后端服务器的实际连接数。当权重值相同时,当前连接数越小的后端服务器被轮询到的次数(概率)也越高。加权最小连接数算法常用于长连接服务,例如数据库连接等服务。
例如负载均衡后端服务器组挂载了2个ECS,分配的权重均为100,当前连接数分别为100、50,则客户端新请求将优先转发到连接数较少的后端服务器。
一致性哈希算法
介绍
一致性哈希算法根据不同的哈希因子将访问请求均匀地分配到后端服务器,并在后端服务器个数发生变化时,依然保持均匀分配。相同哈希因子计算结果的请求,将会调度到相同的后端服务器。
包括如下哈希因子:
源IP哈希:根据请求的源IP地址进行哈希计算。相同源IP的请求会分发到同一台后端服务器。
四元组哈希:根据请求的四元组(源IP、源端口、目标IP、目标端口)进行哈希计算。相同四元组的请求会分发到同一台后端服务器。
QUIC ID哈希:根据请求的QUIC ID进行哈希计算。由于QUIC ID是QUIC连接的唯一标识符,使用它进行负载均衡可以实现基于连接级别的负载分配。相同QUIC连接的请求会分发到同一台后端服务器。
URL参数哈希:根据请求的URL参数进行哈希计算。相同URL参数的请求会分发到同一台后端服务器。
例如负载均衡后端服务器组挂载了2个ECS,上次请求已转发至ECS01进行处理,如果新请求计算后的hash值相同,则客户端新请求将转发到ECS01上。