一种基于分布式系统的负载均衡服务器实现高可用性的方法与流程

文档序号:11657497阅读:1123来源:国知局
一种基于分布式系统的负载均衡服务器实现高可用性的方法与流程

本发明涉及一种基于分布式系统的负载均衡服务器实现高可用性的方法,属于计算技术领域。



背景技术:

随着分布式系统服务器用户的增加,分布式系统服务器的访问量和数据流量也随之迅速增长,所需要的处理能力和计算强度也相应增大。单个分布式系统服务器受到处理能力的限制,将无法满足大访问量的需求,可能会成为网络访问的瓶颈。采用单一的升级方式往往造成不必要的精力浪费,而分布式系统服务器集群正好弥补了这点。与一般分布式系统服务器相比,采用多个分布式系统服务器作为一个应用服务的服务器集群提高了负载能力、可扩展性及可靠性。

随着信息技术的飞速发展,分布式系统服务器集群在国家关键领域起到越来越重要的作用。而其中负载均衡集群是实现分布式系统常用的有效方法,它将根据不同层面的实现原理和已预定的算法将请求合理的转发到后端的节点,有效的利用各个节点使系统整体性能达到最大。但是,当主服务器发生故障时,整个系统就会瘫痪。

keepalived集群管理软件是一个类似于layer3,4&5交换机制的软件,也就是我们平时说的第3层、第4层和第5层交换。keepalived的作用是检测web服务器的状态,如果有一台web服务器死机,或工作出现故障,keepalived将检测到,并将有故障的web服务器从系统中剔除,当web服务器工作正常后keepalived自动将web服务器加入到服务器群中,这些工作全部自动完成,不需要人工干涉,需要人工做的只是修复故障的web服务器。

中国专利文献cn104754006a公开了一种构建高可用性分布式系统的方法,其利用部署在多个机房的后端请求处理服务器和数据库提高网络服务的可用性,将分布式系统所有的请求通过一个前端代理服务器,其将请求分派到多个部署在不同机房的后端请求处理服务器进行处理:当请求为读取数据的请求,则前端服务器用负载均衡的方式将请求分派到一个后端请求处理服务器进行处理,并将处理结果返还给客户;当请求为需要写入数据库的请求,则前端服务器在将此请求转发给所有后端请求服务器,同时将一个随机数和一个时间戳一同转发以供后端请求处理服务器在处理写入数据库的请求时使用。但是,在该专利中负责将整个分布式系统所有的请求转发到不同机房后端是通过一个前端代理服务器实现的,该种设计方式存在单点故障的缺陷。



技术实现要素:

针对现有技术的不足,本发明提供了一种基于分布式系统的负载均衡服务器实现高可用性的方法;

本发明通过使用keepalived集群管理软件,为从服务器动态的分配优先级,并根据优先级来选择一个代替主服务器实现不间断的服务,从而实现分布式系统在负载均衡条件下实现高可用性。本发明有效防止单点故障,即当主服务器发生故障,按照从服务器的优先级来动态地选择一个代替主服务器实现不间断的服务。

本发明的技术方案为:

一种基于分布式系统的负载均衡服务器实现高可用性的方法,包括:实现主从方案配置nginx集群,所述nginx集群包括主nginx服务器、从nginx服务器,使得所述主nginx服务器提供服务,所述从nginx服务器监听所述主nginx服务器,当所述主nginx服务器出现故障后,通知系统管理员,由所述从nginx服务器接管所述主nginx服务器。

根据本发明优选的,所述从nginx服务器监听所述主nginx服务器,包括:采用后台进程循环监听的方式对所述主nginx服务器的运行状态进行监控,即:nginx服务器实时监听所述主nginx服务器的nginx进程,当所述主nginx服务器的nginx进程不存在时,则尝试重新启动所述主nginx服务器,如果失败,则判定所述主nginx服务器出现故障,停止keepalived,由从nginx服务器接管所述主nginx服务器;否则,所述从nginx服务器继续监听所述主nginx服务器。

本发明通过该种循环监听的工作方式来防止单点故障,当主服务器发生故障,按照从nginx服务器的优先级来动态地选择一个代替主nginx服务器,实现不间断的服务,实现整体系统的高可用性。

根据本发明优选的,所述主nginx服务器中将keepalived中的vrrp_instance的state设置为master,所述从nginx服务器中将keepalived中的vrrp_instance的state设置为backup。

根据本发明优选的,所述从nginx服务器接管所述主nginx服务器,包括:所述从nginx服务器上将keepalived的state由backup改为master,将所述从nginx服务器的优先级改为100。

根据本发明优选的,所述分布式系统还包括若干台网页授权接口服务器,用于通过session机制在并发访问量高时减少了网络请求次数。

此处设计的优势在于,有效防止了在并发访问量高的情况下因网络请求过多导致应用服务器性能下降问题。

根据本发明优选的,所述分布式系统还包括若干台负载均衡转发服务器、若干台应用服务器,所述负载均衡转发服务器用于实时对当前连接的应用服务器的个数进行统计,计算出平均每秒当前连接的应用服务器的个数,如果大于阈值数量,则减少所述应用服务器的数量,否则,增加所述应用服务器的数量。实现应用服务器的动态扩展。

本发明的有益效果为:

1、本发明通过循环监听的工作方式来防止单点故障,当主服务器发生故障,按照从nginx服务器的优先级来动态地选择一个代替主nginx服务器,实现不间断的服务,实现整体系统的高可用性。

2、本发明使用多台服务器作为网页授权接口服务器,并采用session机制,可以有效的减少了网络请求次数。

3、本发明实时获取nginx的状态信息,周期性获取用户请求数量,并计算出平均每秒连接数,根据平均连接数来增加减少应用服务器的数量,实现应用服务器的动态扩展,同时使用reloadvalue作为标志位来防止相同状态下nginx无效的加载配置文件。

4、本发明通过nginx自带的status模块,编写相应的python脚本获取nginx当前的平均连接数,根据连接数的大小设置多个阈值,使nginx动态加载不同的配置文件实现架构应用服务器的水平扩展。

5、本发明通过keepalived来保证nginx负载均衡服务器的高可用性,有效的解决了单点故障问题。

附图说明

图1为实施例所述分布式系统结构框图;

图2为实施例所述分布式系统中从nginx服务器接管主nginx服务器的流程框图。

具体实施方式

下面结合说明书附图和实施例对本发明作进一步限定,但不限于此。

实施例

一种基于分布式系统的负载均衡服务器实现高可用性的方法,所述分布式系统如图1所示,前端是两台nginx转发服务器,一台nginx转发服务器为主nginx转发服务器,一台nginx转发服务器为从nginx转发服务器;中间是两台应用服务器,应用服务器的数量可以水平扩展,后端是两台数据库服务器。包括:主nginx转发服务器提供服务,从nginx转发服务器监听主nginx转发服务器,采用后台进程循环监听的方式对主nginx转发服务器的运行状态进行监控,即:从nginx转发服务器实时监听主nginx转发服务器的nginx进程,当主nginx转发服务器的nginx进程不存在时,则尝试重新启动主nginx转发服务器,如果失败,则判定主nginx转发服务器出现故障,停止keepalived,从nginx转发服务器接管主nginx转发服务器;否则,从nginx转发服务器继续监听主nginx转发服务器。

在本实施例实际部署中,为了保证每个单节点的高可用性,单节点都采用keepalived保证可用性,通过负载均衡转发服务器对当前连接数的统计,动态地扩展应用服务器的数量,可扩展分布式架构部署如图1所示。在图1的架构中,使用两台网页授权接口服务器,并采用session机制,有效的减少了网络请求次数。由于在并发访问量高的情况下,网络请求过多导致应用服务器性能下降,本发明有效的保证了在网络流量拥挤的情况下服务器的性能。

在nginx高可用配置中,通过将ip172.16.5.122绑定到主nginx转发服务器的网卡eth0上。同时在从nginx转发服务器中配置keepalied,将其vrrp_instance的state值设置为backup,如图2所示,以下是具体实验步骤:

(1)keealived安装;

(2)nginx监控脚本实现,该脚本监控主nginx转发服务器的运行状态,若主nginx转发服务器进程不存在,尝试重新启动,如启动失败,则停止keealived,由从nginx转发服务器接管

(3)keepalived配置:在主nginx转发服务器和从nginx转发服务器上都需要配置keepalived,主nginx转发服务器的state值设置为master,从nginx转发服务器的state值设置为backup,主nginx转发服务器的优先级设置为101,主nginx转发服务器的优先级设置为101,主nginx转发服务器的src_ip设置为172.16.5.115,主nginx转发服务器的src_ip设置为172.16.5.116。

当前第1页1 2 
网友询问留言 已有0条留言
  • 还没有人留言评论。精彩留言会获得点赞!
1