负载均衡概念

互联网的数据中心每秒要处理上百万次的请求,一台服务器显然不够,我们需要一个服务器集群来处理这些请求,这引入了新问题,如何分配用户的请求? 负载均衡系统应运而生,简单来说它是用来调度用户请求流量的,就像现实中的交警疏导交通一样。它本身不处理具体业务,只将用户的请求按照既定的策略分配给数据中心的服务器来处理

image.png

负载均衡层级

下图是按照用户的流量进入数据中心的方向对负载均衡系统进行了划分

image.png

客户端负载均衡

客户端自己维护一个可用的服务端列表。当需要访问服务端时,则按照自己的策略从列表中选择一个服务端访问。

DNS/CDN负载均衡

通过DNS解析的方式来实现。例如如一个公司在全国各省都有数据中心,部署了相同的服务,通过pp.com来访问。 北京的用户访问pp.com时,DNS系统会把pp.com解析为北京数据中心的入口IP地址,南京的用户访问pp.com时,DNS系统会把pp.com解析为江苏数据中心的入口IP地址。 这样就实现了用户流量的负载均衡,同时就近访问,提高了访问速度。 CDN系统也是同理,不再赘述。

运行商链路负载均衡

中国主流的运营商有三个:联通,电信,移动。一些数据中心的入口可能会同时配置三个不同运营商的入口IP,让联通用户访问联通入口IP,电信用户访问电信入口IP.... 。这样在某种程度上实现了网络链路的负载均衡,同时避免了运营商跨网,提升了速度。

数据中心负载均衡

为了提升数据中心的抗灾性能,我们常常会部署同城机房,或两地三中心。 云计算厂商也会在同城部署多个可用区。 这个层级的负载均衡主要时实现将流量分配给不同的数据中心来处理

前端负载均衡

当流量进入数据中心后,需要前端负载均衡把流量分配给不同的服务器,来处理具体的业务。通常工作在tcp/ip模型的四层或七层。
常见的硬件负载均衡器有F5, A10,netscaler等,软件负载有LVS,Nginx,HAproxy等。

服务中心/网关负载均衡

前端服务器接收用户请求后,会访问后端服务器,部分公司在中间可能会部署一些服务网关,注册中心或者服务发现中心。在rpc调用时通过返回不同的服务器地址来实现后端服务的负载均衡

负载均衡策略

常见的web负载均衡算法(分配流量的策略或方式)有以下几种:

1、rr 轮询(默认)
2、wrr 加权轮询
3、ip_hash IP绑定
4、fair 响应时间最短的优先分配
5、url_hash 根据url的hash结果来分配
6、least_conn 连接数最少的优先分配


千里之行
1 声望2 粉丝

SRE体系践行者