最近更新时间:2024-04-18 19:47:01
转发方式是指负载均衡向后端服务器分配流量的算法,根据不同的转发方式及后端服务器的权重设置,可以达到不同的效果。
加权轮询算法就是以轮叫的方式依次将请求调度不同的服务器。加权轮询调度算法可以解决服务器间性能不一致的情况,它用相应的权值表示服务器的处理性能,按权值的高低和轮询方式分配请求到各服务器。权值高的服务器先收到连接,权值高的服务器比权值低的服务器处理更多的连接,相同权值的服务器处理相同数目的连接。
优势:算法简洁。无需记录当前所有连接的状态,所以它是一种无状态调度。
劣势:不适用于请求服务时间变化比较大,或者每个请求所消耗的时间不一致的情况,此时轮询调度算法容易导致服务器间的负载不平衡。
适用场景:每个请求所占用的后端服务器时间基本相同,常用于短连接服务,例如 HTTP 等服务。
在实际情况中,客户端的每一次请求在服务器停留的时间可能会有较大的差异,随着工作时间的延伸,如果采用简单的轮询算法,每一台服务器上的连接进程数目可能会产生极大的不同,这样实际上并没有达到真正的负载均衡。
最小连接数调度是一种动态调度算法,它通过服务器当前活跃的连接数来估计服务器的负载情况。调度器需要记录各个服务器已建立连接的数目,当一个请求被调度到某台服务器,其连接数加一;当连接中止或超时,其连接数减一。
加权最小连接数算法是在最小连接数调度算法的基础上,根据服务器的不同处理能力,给每个服务器分配不同的权值,使其能够接受相应权值数的服务请求,是在最小连接数调度算法基础上的改进。
假设各台后端服务器的权值依次为 wi,当前连接数依次为 ci ,依次计算 ci/wi ,值最小的后端服务器实例作为下一个分配的实例。
如果存在 ci/wi 相同的后端服务器实例,再使用加权轮询的方式调度。
优势:此种均衡算法适合处理长时的请求服务,如 FTP 等应用。
劣势:相较于加权轮询算法,加权最小连接数算法需要保存服务器现有的连接数目,它是一种有状态调度。
适用场景:每个请求所占用的后端时间相差较大的场景,常用于长连接服务。如 2ms 和 2s 这种数量级的差距时,推荐使用加权最小连接数算法实现负载均衡。
若您对传统主备模式依赖较强,需要利用两台服务器实现主备模式,使用主备转发策略即可满足需求。
后端服务器中仅有一台主机和一台备机。当主机工作正常时,流量将转发至主机;若主机宕机,流量将切换至备机。
使用限制
1.主备服务器组仅可适用于 TCP 和 UDP 监听上。
2.主备服务器组只能添加两台后端服务器,且为一主一备。
3.主备转发规则设置成功后不可与其他转发方式互相切换。
4.主备转发方式下,会话保持配置不生效。
注意:
目前仅以下地区支持主备转发算法:
华东1(上海)
华南1(广州)
华北1(北京)
华北金融1(北京)
华东金融1(上海)
华北政务1(北京)
源IP哈希算法(ip_hash)根据请求的源 IP 地址,使用散列键(Hash Key)从静态分配的散列表找出对应的服务器,若该服务器为可用状态,则将请求发送到该服务器。
优势:可以使某一客户端的请求通过哈希表一直映射在同一台后端服务器上,在不支持会话保持的场景中,可以使用 ip_hash 实现简单的会话保持。
纯净模式