SLB : service load balancer
1、负载均衡解决方案
-
基于DNS负载均衡
-
基于硬件负载均衡
-
基于软件负载均衡
# DNS负载均衡可以实现在地域上的流量均衡
# 硬件负载均衡主要用于大型服务器集群中的负载需求
# 软件负载均衡大多是基于机器层面的流量均衡
# 在实际场景中,这三种是可以组合在一起使用。
2、DNS负载均衡
原理
1、当用户访问域名的时候,会先向DNS服务器去解析域名对应的IP地址
2、DNS服务器根据不同地理位置的用户返回不同的IP。
3、比如南方的用户就返回我们在广州业务服务器的IP,北方的用户来访问的话,我就返回北京业务服务器所在的IP。
# 实现了按照「就近原则」将请求分流了,既减轻了单个集群的负载压力
缺点
1、当配置修改后,生效不及时。
# 这个是由于DNS的特性导致的
# DNS一般会有多级缓存,所以当我们修改了DNS配置之后
# 由于缓存的原因,会导致IP变更不及时,从而影响负载均衡的效果。
2、使用DNS做负载均衡的话,大多是基于地域或者干脆直接做IP轮询,没有更高级的路由策略,所以这也是DNS方案的局限所在。
3、硬件负载均衡
1、大名鼎鼎的 F5 Network Big-IP,也就是我们常说的 F5
2、它是一个网络设备,你可以简单的理解成类似于网络交换机的东西,完全通过硬件来抗压力,性能是非常的好
3、每秒能处理的请求数达到百万级,即 几百万/秒 的负载,当然价格也就非常非常贵了,十几万到上百万人民币都有。
4、软件负载均衡
软件负载均衡是指使用软件的方式来分发和均衡流量
- 7层协议
- 4层协议
1、网络协议有七层
2、基于第四层传输层来做流量分发的方案称为4层负载均衡,例如 LVS,
3、基于第七层应用层来做流量分发的称为7层负载均衡,例如 Nginx。
# 基于4层的负载均衡性能要高一些,一般能达到 几十万/秒 的处理量
# 基于7层的负载均衡处理量一般只在 几万/秒 。
5、常用轮询算法
# Random 随机策略 : 使用随机数来决定转发到哪台机器上。
# Round Robin 轮询:请求到达后,依次转发
# Weighted Round Robin 加权轮询 : 设置一个权重,让新机器接收更多的请求。能者多劳
# Least Connections 最少连接
记录每个应用服务器正在处理的连接数,然后将新来的请求转发到最少的那台上。
# Source Hashing 源地址散列
1、根据请求的来源ip进行hash计算,然后对应到一个服务器上。
2、之后所有来自这个ip的请求都由同一台服务器处理。