101-谈谈互联网常见的负载均衡

负载均衡是我们对应高并发流量的一种常见处理方式

我们分两个方面来聊这个问题,一个是负载均衡的分类,一个是负载均衡的常见算法。

1,负载均衡的分类

基本我们可以分为客户端负载均衡和服务端负载均衡

服务端负载均衡,表示其负载均衡算法是在服务端实现的,比如我们常见的nginx,通过nginx我们可以来管理背后的多台tomcat服务器,从而实现多台tomcat服务共同对外提供服务的效果,如图所示:

img

客户端负载均衡:

就是表示其负载均衡算法是由调用者来维护,比如Dubbo的Proxy,SpringCloud的Ribbon

2,负载均衡的常见方式

1,轮询

即按照固定顺序,顺序循环访问后台的服务器,比如上述的tomcat1,tomcat2

2,权重

即可以根据后台服务器的硬件差异,配置权重,让性能好的服务器多处理请求

3,最小活跃数

根据服务器的压力,动态调整对请求的处理

4,ip_hash

根据客户端的ip地址做hash运算,找到对应的服务器进行处理

5,一致性hash

相同参数的请求总是发到同一提供者。

当某一台提供者挂时,原本发往该提供者的请求,基于虚拟节点,平摊到其它提供者,不会引起剧烈变动。