常见负载均衡策略
随机
随机向某台机器发送请求
- 优点:请求均匀。
- 缺点:木桶原理,容易受性能最差的服务器影响。
轮询
轮流向集群内机器发送请求
优缺点与随机类似。事实上,请求量越大,随机越近似于轮询
哈希
根据指定请求参数哈希取模固定打到某台机器
- 优点:有一致性,利于实现某些场景,比如灰度某些用户。
- 缺点:当用户活跃度与参数相关时(比如打向某台机器的用户活跃度较高),相应的服务器提供服务会受到影响。
加权
加权可以基于随机、轮询来做,优缺点也类似
最少活跃调用数
优先调用当前活跃数少的机器,相同活跃数的随机。活跃数指一台服务器调用前后的技术差。
- 优点:使慢的提供者收到更少请求,因为越慢的提供者的调用前后计数差会越大。Dubbo里提供了这种负载均衡策略。
- 缺点:每次请求都需要记录活跃数。
最少响应时间调用
优先调用响应时间最短的机器
- 优点:使快的提供者收到更多请求。
- 缺点:每次请求都要记录响应时间。