CN106993037A - 一种基于分布式系统的负载均衡服务器实现高可用性的方法 - Google Patents

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

Info

Publication number
CN106993037A
CN106993037A CN201710207260.XA CN201710207260A CN106993037A CN 106993037 A CN106993037 A CN 106993037A CN 201710207260 A CN201710207260 A CN 201710207260A CN 106993037 A CN106993037 A CN 106993037A
Authority
CN
China
Prior art keywords
nginx
servers
main
nginx servers
server
Prior art date
Legal status (The legal status is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the status listed.)
Pending
Application number
CN201710207260.XA
Other languages
English (en)
Inventor
王晔
陈乃阔
吴登勇
Current Assignee (The listed assignees may be inaccurate. Google has not performed a legal analysis and makes no representation or warranty as to the accuracy of the list.)
Shandong Chaoyue Numerical Control Electronics Co Ltd
Original Assignee
Shandong Chaoyue Numerical Control Electronics Co Ltd
Priority date (The priority date is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the date listed.)
Filing date
Publication date
Application filed by Shandong Chaoyue Numerical Control Electronics Co Ltd filed Critical Shandong Chaoyue Numerical Control Electronics Co Ltd
Priority to CN201710207260.XA priority Critical patent/CN106993037A/zh
Publication of CN106993037A publication Critical patent/CN106993037A/zh
Pending legal-status Critical Current

Links

Classifications

    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04LTRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
    • H04L67/00Network arrangements or protocols for supporting network services or applications
    • H04L67/01Protocols
    • H04L67/10Protocols in which an application is distributed across nodes in the network
    • H04L67/1001Protocols in which an application is distributed across nodes in the network for accessing one among a plurality of replicated servers
    • H04L67/1038Load balancing arrangements to avoid a single path through a load balancer
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04LTRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
    • H04L41/00Arrangements for maintenance, administration or management of data switching networks, e.g. of packet switching networks
    • H04L41/06Management of faults, events, alarms or notifications
    • H04L41/0654Management of faults, events, alarms or notifications using network fault recovery
    • H04L41/0668Management of faults, events, alarms or notifications using network fault recovery by dynamic selection of recovery network elements, e.g. replacement by the most appropriate element after failure
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04LTRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
    • H04L67/00Network arrangements or protocols for supporting network services or applications
    • H04L67/01Protocols
    • H04L67/10Protocols in which an application is distributed across nodes in the network
    • H04L67/1001Protocols in which an application is distributed across nodes in the network for accessing one among a plurality of replicated servers
    • H04L67/1031Controlling of the operation of servers by a load balancer, e.g. adding or removing servers that serve requests
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04LTRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
    • H04L67/00Network arrangements or protocols for supporting network services or applications
    • H04L67/01Protocols
    • H04L67/10Protocols in which an application is distributed across nodes in the network
    • H04L67/1001Protocols in which an application is distributed across nodes in the network for accessing one among a plurality of replicated servers
    • H04L67/1034Reaction to server failures by a load balancer

Landscapes

  • Engineering & Computer Science (AREA)
  • Computer Networks & Wireless Communication (AREA)
  • Signal Processing (AREA)
  • Computer And Data Communications (AREA)
  • Data Exchanges In Wide-Area Networks (AREA)
  • Hardware Redundancy (AREA)

Abstract

本发明涉及一种基于分布式系统的负载均衡服务器实现高可用性的方法,包括:实现主从方案配置Nginx集群,Nginx集群包括主Nginx服务器、从Nginx服务器,使得主Nginx服务器提供服务,从Nginx服务器监听所述主Nginx服务器,当主Nginx服务器出现故障后,通知系统管理员,由从Nginx服务器接管主Nginx服务器。本发明通过使用Keepalived集群管理软件,为备份服务器动态的分配优先级,并根据优先级来选择一个代替主服务器实现不间断的服务,从而实现分布式系统在负载均衡条件下实现高可用性。

Description

一种基于分布式系统的负载均衡服务器实现高可用性的方法
技术领域
本发明涉及一种基于分布式系统的负载均衡服务器实现高可用性的方法,属于计算技术领域。
背景技术
随着分布式系统服务器用户的增加,分布式系统服务器的访问量和数据流量也随之迅速增长,所需要的处理能力和计算强度也相应增大。单个分布式系统服务器受到处理能力的限制,将无法满足大访问量的需求,可能会成为网络访问的瓶颈。采用单一的升级方式往往造成不必要的精力浪费,而分布式系统服务器集群正好弥补了这点。与一般分布式系统服务器相比,采用多个分布式系统服务器作为一个应用服务的服务器集群提高了负载能力、可扩展性及可靠性。
随着信息技术的飞速发展,分布式系统服务器集群在国家关键领域起到越来越重要的作用。而其中负载均衡集群是实现分布式系统常用的有效方法,它将根据不同层面的实现原理和已预定的算法将请求合理的转发到后端的节点,有效的利用各个节点使系统整体性能达到最大。但是,当主服务器发生故障时,整个系统就会瘫痪。
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设置为BACK UP。
根据本发明优选的,所述从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。

Claims (6)

1.一种基于分布式系统的负载均衡服务器实现高可用性的方法,其特征在于,包括:实现主从方案配置Nginx集群,所述Nginx集群包括主Nginx服务器、从Nginx服务器,使得所述主Nginx服务器提供服务,所述从Nginx服务器监听所述主Nginx服务器,当所述主Nginx服务器出现故障后,通知系统管理员,由所述从Nginx服务器接管所述主Nginx服务器。
2.根据权利要求1所述的一种基于分布式系统的负载均衡服务器实现高可用性的方法,其特征在于,所述从Nginx服务器监听所述主Nginx服务器,包括:采用后台进程循环监听的方式对所述主Nginx服务器的运行状态进行监控,即:Nginx服务器实时监听所述主Nginx服务器的Nginx进程,当所述主Nginx服务器的Nginx进程不存在时,则尝试重新启动所述主Nginx服务器,如果失败,则判定所述主Nginx服务器出现故障,停止keepalived,由从Nginx服务器接管所述主Nginx服务器;否则,所述从Nginx服务器继续监听所述主Nginx服务器。
3.根据权利要求1所述的一种基于分布式系统的负载均衡服务器实现高可用性的方法,其特征在于,所述主Nginx服务器中将Keepalived中的vrrp_instance的state设置为Master,所述从Nginx服务器中将Keepalived中的vrrp_instance的state设置为BACK UP。
4.根据权利要求1所述的一种基于分布式系统的负载均衡服务器实现高可用性的方法,其特征在于,所述从Nginx服务器接管所述主Nginx服务器,包括:所述从Nginx服务器上将keepalived的state由BACKUP改为Master,将所述从Nginx服务器的优先级改为100。
5.根据权利要求1所述的一种基于分布式系统的负载均衡服务器实现高可用性的方法,其特征在于,所述分布式系统还包括若干台网页授权接口服务器,用于通过session机制在并发访问量高时减少了网络请求次数。
6.根据权利要求1-5任一所述的一种基于分布式系统的负载均衡服务器实现高可用性的方法,其特征在于,所述分布式系统还包括若干台负载均衡转发服务器、若干台应用服务器,所述负载均衡转发服务器用于实时对当前连接的应用服务器的个数进行统计,计算出平均每秒当前连接的应用服务器的个数,如果大于阈值数量,则减少所述应用服务器的数量,否则,增加所述应用服务器的数量。
CN201710207260.XA 2017-03-31 2017-03-31 一种基于分布式系统的负载均衡服务器实现高可用性的方法 Pending CN106993037A (zh)

Priority Applications (1)

Application Number Priority Date Filing Date Title
CN201710207260.XA CN106993037A (zh) 2017-03-31 2017-03-31 一种基于分布式系统的负载均衡服务器实现高可用性的方法

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
CN201710207260.XA CN106993037A (zh) 2017-03-31 2017-03-31 一种基于分布式系统的负载均衡服务器实现高可用性的方法

Publications (1)

Publication Number Publication Date
CN106993037A true CN106993037A (zh) 2017-07-28

Family

ID=59415822

Family Applications (1)

Application Number Title Priority Date Filing Date
CN201710207260.XA Pending CN106993037A (zh) 2017-03-31 2017-03-31 一种基于分布式系统的负载均衡服务器实现高可用性的方法

Country Status (1)

Country Link
CN (1) CN106993037A (zh)

Cited By (13)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN107800794A (zh) * 2017-10-26 2018-03-13 广州市雷军游乐设备有限公司 实现平台安全稳定运行的系统
CN107806906A (zh) * 2017-12-04 2018-03-16 广州市吉华勘测股份有限公司 一种高大模板支撑系统的监测系统和方法
CN108111586A (zh) * 2017-12-14 2018-06-01 重庆邮电大学 一种高并发支持的web集群系统及方法
CN109151022A (zh) * 2018-08-21 2019-01-04 平安科技(深圳)有限公司 网页控制台的调用方法、装置、计算机设备及存储介质
CN109302460A (zh) * 2018-09-14 2019-02-01 中通国脉物联科技南京有限公司 一种动态扩展通信连接数的管理方法
CN109600264A (zh) * 2018-12-19 2019-04-09 创新科存储技术(深圳)有限公司 CloudStack云平台
CN110008005A (zh) * 2019-04-11 2019-07-12 中国南方电网有限责任公司 基于云平台的电网通信资源虚拟机迁移系统及方法
CN110287079A (zh) * 2019-05-14 2019-09-27 中山大学 一种集群自动化监控系统及方法
CN110474797A (zh) * 2019-07-25 2019-11-19 北京旷视科技有限公司 Api业务系统、主备切换的方法及装置
CN110737526A (zh) * 2019-10-22 2020-01-31 上海思询信息科技有限公司 一种基于Redis的分布式集群下的定时任务管理方法及装置
CN111277629A (zh) * 2020-01-13 2020-06-12 浙江工业大学 一种基于高可用性的web高并发系统及方法
CN111641719A (zh) * 2020-06-02 2020-09-08 山东汇贸电子口岸有限公司 基于Openstack的内网型负载均衡实现方法、存储介质
CN112596911A (zh) * 2020-12-29 2021-04-02 恩亿科(北京)数据科技有限公司 高可用分布式系统自动化运维方法及系统

Citations (2)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US20140372533A1 (en) * 2011-02-09 2014-12-18 Cliqr Technologies, Inc. Apparatus, systems, and methods for cloud agnostic multi-tier application modeling and deployment
CN104580502A (zh) * 2015-01-26 2015-04-29 浪潮电子信息产业股份有限公司 一种实现负载均衡双机热备的方法

Patent Citations (2)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US20140372533A1 (en) * 2011-02-09 2014-12-18 Cliqr Technologies, Inc. Apparatus, systems, and methods for cloud agnostic multi-tier application modeling and deployment
CN104580502A (zh) * 2015-01-26 2015-04-29 浪潮电子信息产业股份有限公司 一种实现负载均衡双机热备的方法

Non-Patent Citations (2)

* Cited by examiner, † Cited by third party
Title
吴挺: "基于微信公众平台的可扩展架构研究与实现", 《中国优秀硕士学位论文全文数据库(电子期刊)·信息科技辑》 *
陈荣赏,等: "LVS/DR、NGINX混合负载均衡集群技术应用研究", 《湖北民族学院学报(自然科学版)》 *

Cited By (15)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN107800794A (zh) * 2017-10-26 2018-03-13 广州市雷军游乐设备有限公司 实现平台安全稳定运行的系统
CN107806906A (zh) * 2017-12-04 2018-03-16 广州市吉华勘测股份有限公司 一种高大模板支撑系统的监测系统和方法
CN108111586A (zh) * 2017-12-14 2018-06-01 重庆邮电大学 一种高并发支持的web集群系统及方法
CN109151022B (zh) * 2018-08-21 2022-06-14 平安科技(深圳)有限公司 网页控制台的调用方法、装置、计算机设备及存储介质
CN109151022A (zh) * 2018-08-21 2019-01-04 平安科技(深圳)有限公司 网页控制台的调用方法、装置、计算机设备及存储介质
CN109302460A (zh) * 2018-09-14 2019-02-01 中通国脉物联科技南京有限公司 一种动态扩展通信连接数的管理方法
CN109600264A (zh) * 2018-12-19 2019-04-09 创新科存储技术(深圳)有限公司 CloudStack云平台
CN110008005A (zh) * 2019-04-11 2019-07-12 中国南方电网有限责任公司 基于云平台的电网通信资源虚拟机迁移系统及方法
CN110287079A (zh) * 2019-05-14 2019-09-27 中山大学 一种集群自动化监控系统及方法
CN110474797A (zh) * 2019-07-25 2019-11-19 北京旷视科技有限公司 Api业务系统、主备切换的方法及装置
CN110737526A (zh) * 2019-10-22 2020-01-31 上海思询信息科技有限公司 一种基于Redis的分布式集群下的定时任务管理方法及装置
CN111277629A (zh) * 2020-01-13 2020-06-12 浙江工业大学 一种基于高可用性的web高并发系统及方法
CN111641719A (zh) * 2020-06-02 2020-09-08 山东汇贸电子口岸有限公司 基于Openstack的内网型负载均衡实现方法、存储介质
CN111641719B (zh) * 2020-06-02 2023-03-28 山东汇贸电子口岸有限公司 基于Openstack的内网型负载均衡实现方法、存储介质
CN112596911A (zh) * 2020-12-29 2021-04-02 恩亿科(北京)数据科技有限公司 高可用分布式系统自动化运维方法及系统

Similar Documents

Publication Publication Date Title
CN106993037A (zh) 一种基于分布式系统的负载均衡服务器实现高可用性的方法
CN110224871B (zh) 一种Redis集群的高可用方法及装置
CN103607297B (zh) 一种计算机集群系统的故障处理方法
US9262229B2 (en) System and method for supporting service level quorum in a data grid cluster
CN104836819A (zh) 动态负载均衡的方法、系统及监控调度设备
CN108989352B (zh) 防火墙实现方法、装置、计算机设备及存储介质
CN105007312A (zh) 一种云计算服务器自适应负载均衡控制方法及控制系统
CN109960634B (zh) 一种应用程序监控方法、装置及系统
KR20150032346A (ko) 컴퓨터 정보 시스템 및 이를 위한 동적 재난 복구 방법
CN105915405A (zh) 一种大型集群节点性能监控系统
KR101211207B1 (ko) 캐시 클라우드 구조를 이용한 캐시 시스템 및 캐싱 서비스 제공 방법
US20210048956A1 (en) Storage system, and method and apparatus for allocating storage resources
CN105429799A (zh) 服务器备份方法及装置
CN105119993A (zh) 虚拟机部署方法及装置
CN103501290A (zh) 一种基于动态备份虚拟机的高可靠服务系统构建方法
US9063852B2 (en) System and method for use with a data grid cluster to support death detection
CN113268351A (zh) 一种网关服务的负载均衡方法及装置
CN100521603C (zh) 集群模式下实现网络安全设备高可用性的方法
CN112311896B (zh) 健康检查方法、装置、设备及计算机可读存储介质
KR101586354B1 (ko) 병렬 연결식 서버시스템의 통신 장애 복구방법
CN108989476A (zh) 一种地址分配方法以及装置
CN103731289A (zh) 一种网络服务器自动扩展的方法
CN112965811B (zh) 一种监控数据的优化方法及服务端
DE112011105853T5 (de) Verwaltung der Steuerung des Pufferzulaufs durch den Verbindungsstatus
CN106878117B (zh) 一种数据处理方法及装置

Legal Events

Date Code Title Description
PB01 Publication
PB01 Publication
SE01 Entry into force of request for substantive examination
SE01 Entry into force of request for substantive examination
WD01 Invention patent application deemed withdrawn after publication

Application publication date: 20170728

WD01 Invention patent application deemed withdrawn after publication