负载均衡建立在现有网络结构之上,提供了一种廉价有效透明的方法扩展网络设备和服务器 的带宽、增加 吞吐量 、加强网络数据处理能力、提高网络的灵活性和可用性。说的明白点儿,负载均衡就是多台设备分担任务,单台设备的负载压力有点儿大。解决高并发量访问的的情况。

当一台服务器的性能达到极限时,我们可以使用服务器集群来提高网站的整体性能。那么,在服务器集群中,需要有一台服务器充当调度者的角色,用户的所有请求都会首先由它接收,调度者再根据每台服务器的负载情况将请求分配给某一台后端服务器去处理。那么在这个过程中,调度者如何合理分配任务,保证所有后端服务器都将性能充分发挥,从而保持服务器集群的整体性能最优,这就是负载均衡问题。说白了负载均衡是个调度员的角色,用来分配任务个完成同一任务的服务器集群。

本地负载均衡和区域负载均衡(3分钟了解负载均衡)(1)

负载均衡

负载均衡的实现方式要从网络分层结构说起。有二层的负载均衡,三层的负载均衡和高层的负载均衡。高层的负载均衡又有http重定向协议实现负载均衡、dns域名解析负载均衡和反向代理负载均衡。

1 二层负载均衡

二层负载均衡又称为数据链路层负载均衡。主要的实现方式就是PPP捆绑和链路聚合技术。

1) 链路聚合技术

以太网链路聚合简称链路聚合,它通过将多条以太网物理链路捆绑在一起成为一条逻辑链路,从而实现增加链路带宽的目的。同时,这些捆绑在一起的链路通过相互间的动态备份,可以有效地提高链路的可靠性。

链路聚合需要用到LACP协议。LACP(Link Aggregation Control Protocol,链路聚合控制协议)协议是一种实现链路动态聚合的协议,运行该协议的设备之间通过互发LACPDU(Link Aggregation Control Protocol Data Unit,链路聚合控制协议数据单元)来交互链路聚合的相关信息。

本地负载均衡和区域负载均衡(3分钟了解负载均衡)(2)

链路聚合

2)PPP捆绑技术

PPP捆绑是将多个物理链路合并或者捆绑成一个大逻辑链路的机制。主要起到增加带宽,减少延时,线路备份的作用,另外一个作用是可以将不同类型的接口捆绑为一个逻辑接口。

MLPPP是由LCP在初始化时设置的一个功能选项。MLPPP将packet分成多个小块的片段同时送到远端router,LCP再将它们恢复成完整的packet。

可以在接口或拨号设备上使用下面命令对MLPPP进行配置:

MLPPP配置过程:

第1步 建立一个逻辑的MLPPP接口,使用interface multilink multilink_interface_number

第2步 给MLPPP接口分配IP地址,这一步不需要多说了吧

第3步 把相应的PPP链路配置到相应的MLPPP group, Ppp Multilink ,配置启用MLPPP

Multilink-group multilink_group_number 分配进相应的multilink group

本地负载均衡和区域负载均衡(3分钟了解负载均衡)(3)

PPP捆绑示例

2 三层负载均衡

三层负载均衡也就是网络层的负载均衡,需要用到网络层的协议,如OSPF协议,RIP协议等。

1)OSPF负载均衡

首先简要的说一下OSPF,OSPF路由协议是一种典型的链路状态路由协议,一般用于同一个路由域内。在这里,路由域是是指一组通过统一的路由政策或路由协议互相交换路由信息的网络。在这个AS中,所有的OSPF路由器都维护一个相同的描述这个 AS结构的数据库,该数据库中存放的是路由域中相应链路的状态信息,OSPF路由器正是通过这个数据库计算出其OSPF路由表的。 OSPF将链路状态广播数据包LSA传送给在某一区域内的所有路由器,这一点与距离矢量路由协议不同。运行距离矢量路由协议的路由器是将部分或全部的路由表传递给与其相邻的路由器。

OSPF会自动计算接口上的Cost值,但也可以通过手工指定该接口的Cost值,手工指定的优先于自动计算的值。OSPF计算的Cost,同样是和接口带宽成反比,带宽越高,Cost值越小。到达目标相同Cost值的路径相同,可以执行负载均衡,最多6条链路同时执行负载均衡。 OSPF负载均衡是一种等价负载均衡。

OSPF负载均衡一般与其他负载均衡一起搭建成负载均衡集群,提供高可用、高负载服务。

本地负载均衡和区域负载均衡(3分钟了解负载均衡)(4)

OSPF负载均衡

2)RIP负载均衡

RIP协议目前用的比较少,不详细介绍。

RIP负载均衡与OSPF负载均衡的原理类似。采用了等价负载均衡的原理。到达后端网络的路径开销一致,就达到了负载均衡的目的。

本地负载均衡和区域负载均衡(3分钟了解负载均衡)(5)

RIP等价负载均衡

3 高层负载均衡

1)http重定向协议实现负载均衡

根据用户的http请求计算出一个真实的web服务器地址,并将该web服务器地址写入http重定向响应中返回给浏览器,由浏览器重新进行访问。这种方式的优点是比较简单。缺点:浏览器需要零次请求服务器才能完成一次访问,性能较差。http重定向服务器自身的处理能力可能成为瓶颈。使用http302响应重定向,有可能使搜索引擎判断为SEO作弊,降低搜索排名。

2)dns域名解析负载均衡

在DNS服务器上配置多个域名对应IP的记录。例如一个域名www.baidu.com对应一组web服务器IP地址,域名解析时经过DNS服务器的算法将一个域名请求分配到合适的真实服务器上。优点:将负载均衡的工作交给了DNS,省却了网站管理维护负载均衡服务器的麻烦,同事许多DNS还支持基于地理位置的域名解析,将域名解析成距离用户地理最近的一个服务器地址,加快访问速度吗,改善性能。这种方式的缺点是:DNS负载均衡的控制权在域名服务商手里,网站可能无法做出过多的改善和管理。 不能够按服务器的处理能力来分配负载。DNS负载均衡采用的是简单的轮询算法,不能区分服务器之间的差异,不能反映服务器当前运行状态,所以其的负载均衡效果并不是太好。

3)反向代理负载均衡

反向代理处于web服务器这边,反向代理服务器提供负载均衡的功能,同时管理一组web服务器,它根据负载均衡算法将请求的浏览器访问转发到不同的web服务器处理,处理结果经过反向服务器返回给浏览器。浏览器访问请求的地址是反向代理服务器的地址114.100.80.10,反向代理服务器收到请求,经过负载均衡算法后得到一个真实物理地址10.0.03,并将请求结果发给真实无服务,真实服务器处理完后通过反向代理服务器返回给请求用户。这种方式的优点是部署简单,处于http协议层面。缺点是使用了反向代理服务器后,web 服务器地址不能直接暴露在外,因此web服务器不需要使用外部IP地址,而反向代理服务作为沟通桥梁就需要配置双网卡、外部内部两套IP地址。

本地负载均衡和区域负载均衡(3分钟了解负载均衡)(6)

反向代理负载均衡

以上内容就是我学习的总结。有问题请在评论区留言讨论,如需更多帮助请私信关注。谢谢

,