算法 | 简介 | 优点 | 缺点 |
轮询 | 将请求按顺序轮流地分配到每个节点上 | 简单,易于扩展 | 没有考虑机器的性能问题,集群性能瓶颈更多的会受性能差的服务器影响。 |
加权轮询 | 在轮询的基础上,给配置高、当前负载低的机器配置更高的权重 | 将不同机器的性能纳入到考量,集群性能最大化 | 生产环境复杂多变,服务器能力无法精确估算,静态算法导致无法实时动态调整,只能粗糙优化。 |
随机 | 将请求随机分配到各个节点。随着客户端调用服务端的次数增多,其实际效果越来越接近于轮询。 | 和轮询相似 | |
源地址散列 | 请求的IP地址进行Hash计算,用算出的数值对服务器节点数进行取模,得到的结果便是要访问节点序号 | 同一个IP地址的请求总在同一个服务器上处理,该请求的上下文信息可以存储在这台服务器上,在一个会话周期内重复使用 | 如果某个节点出现故障,会导致这个节点上的客户端无法使用,无法保证高可用。当某一用户成为热点用户,那么会有巨大的流量涌向这个节点,无法有效利用起集群的性能。所以当热点事件出现时,一般会将源地址哈希法切换成轮询法。 |
最小连接数 | 动态选取其中当前积压连接数最少的一个节点处理当前请求 | 动态,根据节点状况实时变化 | 复杂度更高,每次连接断开需要进行计数 |
最快响应速度 | 将响应速度快的服务节点分配更多的请求 | 动态,实时变化,控制的粒度更细,更灵敏 | 复杂度更高,每次需要计算请求响应速度 |
分布式 —— 负载均衡算法
最新推荐文章于 2023-12-31 09:59:06 发布