18.11 说说你了解的负载均衡算法
难度:★★
重点:★★★★
白话解析
常用的负载均衡算法有:
1、轮询(Round Robin):说白了就是让服务器排好队,一个个轮着来调用;Ribbon默认采用该算法。
-
优点:实现起来简单;
-
缺点:服务器性能不一样的情况下,导致能力强的会经常空闲。
2、加权轮询(WeightedRound-Robin):说白了就是在轮询的基础之上给个权重,实现起来也比较简单,例如有三台服务器A、B、C,权重分别是A=10%、B=30%、C=60%,在请求来的时候让着三台服务器按如下排队:A、B、B、B、C、C、C、C、C、C;然后一直循环这样的排队就完事了。
-
缺点:不够平滑,前4次请求都不会落在C服务器上。
3、随机:就一个Random函数搞定。也不适合性能不一样的服务器。
4、加权随机:在随机的基础之上给权重。Dubbo默认采用该算法,但是默认情况下