一种服务器负载均衡方法

文档序号:10555697阅读:386来源:国知局
一种服务器负载均衡方法
【专利摘要】本发明实施例涉及一种服务器负载均衡方法,所述方法包括:控制服务器接收应用服务器发送的数据处理请求;所述控制服务器判断所述数据处理请求的类型;当所述数据处理请求为读取数据请求时,所述控制服务器获取每台数据库服务器的负载信息,根据所述负载信息得到每台数据库服务器的负载值;所述控制服务器根据所述每台数据库服务器的当前负载值和当前总负载值,将所述数据处理请求分配到第一数据库服务器进行处理。本发明实施例提供的服务器负载均衡方法,能够根据服务器负载值弹性化分配数据处理任务,从而实现服务器负载均衡。
【专利说明】
一种服务器负载均衡方法
技术领域
[0001]本发明涉及网络技术领域,尤其涉及一种服务器负载均衡方法。
【背景技术】
[0002]随着通信技术和网络技术的发展,网络访问量和数据流量快速增长,网络各个核心部分的处理性能和计算强度也相应增大,单一服务器明显已经无法满足数据处理的需求,因此需要多个服务器进行分担。
[0003]现有技术中,在利用多个服务器进行数据处理时,存在服务器负载不均衡的问题,出现部分服务器数据处理量过大,导致处理速度慢,处理时间超出预期,而其他服务器处理数据量低于预期或者闲置,从而造成资源浪费。因此,需要一种合理有效地分配资源,实现服务器负载均衡的方法。

【发明内容】

[0004]本发明的目的是提供一种服务器负载均衡方法,以解决现有技术中服务器负载不均衡的问题。
[0005]为实现上述目的,本发明提供了一种服务器负载均衡方法,所述方法包括:
[0006]控制服务器接收应用服务器发送的数据处理请求;
[0007]所述控制服务器判断所述数据处理请求的类型;
[0008]当所述数据处理请求为读取数据请求时,所述控制服务器获取每台数据库服务器的负载信息,根据所述负载信息得到每台数据库服务器的负载值;
[0009]所述控制服务器根据所述每台数据库服务器的当前负载值和当前总负载值,将所述数据处理请求分配到第一数据库服务器进行处理。
[0010]进一步的,所述控制服务器根据所述每台数据库服务器的当前负载值和当前总负载值,将所述数据处理请求分配到第一数据库服务器进行处理具体包括:
[0011]当所述当前总负载值小于所述理论总负载值时,将所述数据处理请求分配到理论负载值与当前负载值差别最大的第一数据库服务器。
[0012]进一步的,所述控制服务器根据所述每台数据库服务器的当前负载值和当前总负载值,将所述数据处理请求分配到第一数据库服务器进行处理具体包括:
[0013]当所述当前总负载值小于所述理论总负载值时,将所述数据处理请求分配到当前负载值最小的第一数据库服务器。
[0014]进一步的,所述将所述数据处理请求分配到当前负载值最小的第一数据库服务器具体包括:
[0015]所述控制服务器利用当前负载值最小且处于正常工作状态的数据库服务器进行数据读取。
[0016]进一步的,所述控制服务器根据所述每台数据库服务器的当前负载值和当前总负载值,将所述数据处理请求分配到第一数据库服务器进行处理具体包括:
[0017]当所述当前总负载值小于所述理论总负载值时,将所述数据处理请求分配到任一当前负载值不大于理论负载值的第一数据库服务器。
[0018]进一步的,所述控制服务器根据所述每台数据库服务器的当前负载值和当前总负载值,将所述数据处理请求分配到第一数据库服务器进行处理具体包括:
[0019]当所述当前总负载值等于所述理论总负载值时,将所述数据处理请求分配到新投入的第一数据库服务器进行处理。
[0020]进一步的,所述方法还包括:所述数据库服务器向所述控制服务器发送状态信息,当接收到当前状态信息为故障状态或超过阈值时间没有收到当前状态信息时,将所述数据库服务器的所有任务切换到该数据库服务器对应的备用数据库服务器或者其他数据库服务器。
[0021]进一步的,当接收到当前状态信息为故障状态或超过阈值时间没有收到当前状态信息时,将所述数据库服务器的所有任务切换到该数据库服务器对应的备用数据库服务器或者其他数据库服务器具体包括:
[0022]当前状态信息为故障状态或超过阈值时间没有收到当前状态信息时,将所述数据库服务器的所有任务统一切换到所述数据库服务器对应的备用数据库服务器;或者
[0023]将所述数据库服务器的所有任务根据负载信息切换到其他数据库服务器。
[0024]本发明实施例提供的服务器负载均衡方法,能够根据服务器负载值弹性化分配数据处理任务,从而实现服务器负载均衡。
【附图说明】
[0025]图1为本发明实施例提供的服务器负载均衡方法的系统架构图;
[0026]图2为本发明实施例提供的服务器负载均衡方法流程图。
【具体实施方式】
[0027]下面通过附图和实施例,对本发明的技术方案做进一步的详细描述。
[0028]图1为本发明实施例提供的服务器负载均衡方法的系统架构图。如图1所示,包括多个应用服务器11、多个控制服务器12和多个数据库服务器13。应用服务器11向控制服务器12发送数据处理请求,控制服务器12判断数据处理请求的类型,当数据处理请求为读取数据请求时,控制服务器12获取每台数据库服务器13的负载信息,根据负载信息得到每台数据库服务器13的负载值。控制服务器13根据每台数据库服务器的当前负载值和当前总负载值,将数据处理请求分配到数据库服务器13进行处理。当数据处理请求为写入数据请求时,应用服务器11将待写入数据缓存在控制服务器12,控制服务器12将待写入数据写入多个数据库服务器13。另外,每台数据库服务器13都具有对应的备用数据库服务器(图中未示出),当数据库服务器13出现问题不能正常工作时,启动对应的备用数据库服务器执行数据处理任务。此前,需要对数据库做镜像,然后周期性的对备用数据库服务器进行快照,以保证备用数据库服务器和数据库服务器13数据同步。
[0029]图2为本发明实施例提供的服务器负载均衡方法示意图。如图2所示,所述方法包括:
[0030]步骤201,控制服务器接收应用服务器发送的数据处理请求。
[0031]具体地,控制服务器作为应用服务器和数据库服务器的中间层,接收应用服务器发送的数据处理请求,截断了应用服务器和数据库服务器的直接连接,使控制服务器可以具体控制访问某个数据库。控制服务器将数据库放到了内网之中,更好地保护了数据库的安全性。
[0032]另外,控制服务器的设置便于数据库管理员对数据库进行管理,而且由于控制服务器承接了所有数据库的连接,需要设置多个控制服务器,避免一个控制服务器出现问题导致系统瘫痪。
[0033]步骤202,所述控制服务器判断所述数据处理请求的类型。
[0034]具体地,数据处理请求包括读取数据请求和写入数据请求,控制服务器首先需要做出判断后再进行后续处理。
[0035]步骤203,当所述数据处理请求为读取数据请求时,所述控制服务器获取每台数据库服务器的负载信息,根据所述负载信息得到每台数据库服务器的负载值。
[0036]其中,负载信息包括服务器的CPU利用率、内存利用率和网络带宽占用率等,分别将负载信息中的各项赋予权重,并进行加权处理,得到数据库服务器的负载值。
[0037]另外,当数据处理请求为写入数据请求时,应用服务器将待写入数据缓存在控制服务器,控制服务器将待写入数据写入多个数据库服务器。
[0038]步骤204,所述控制服务器根据所述每台数据库服务器的当前负载值和当前总负载值,将所述数据处理请求分配到第一数据库服务器进行处理。
[0039]具体地,当当前总负载值小于理论总负载值时,分为以下三种处理办法:
[0040]第一种,将数据处理请求分配到理论负载值与当前负载值差别最大的第一数据库服务器。
[0041]理论负载值与当前负载值差别最大,说明该数据库服务器和其他数据库服务器相比存在更多的空闲空间可以进行数据处理。
[0042]其中,理论负载值为每台数据库服务器的最大负载值。理论总负载值为每台数据库服务器的最大负载值之和。
[0043]第二种,将数据处理请求分配到当前负载值最小的第一数据库服务器。
[0044]具体地,控制服务器利用当前负载值最小且处于正常工作状态的数据库服务器进行数据读取。
[0045]此处需要说明的是,如果数据库服务器出现故障,则也有可能出现当前负载值最小的情况,因此,控制服务器需要用当前负载值最小且处于正常工作状态的数据库服务器进行数据读取。
[0046]第三种,将数据处理请求分配到任一当前负载值不大于理论负载值的第一数据库服务器。
[0047]只要当前负载值不大于理论负载值,则该数据库服务器就可以继续增加数据处理任务,因此,可以将数据处理请求分配到任意一个当前负载值不大于理论负载值的数据库服务器。
[0048]当当前总负载值等于理论总负载值时,当前所有数据库服务器均无闲置,则需要新投入数据库服务器,将数据处理请求分配到新投入的第一数据库服务器进行处理。
[0049]可选地,本申请技术方案还包括:数据库服务器向控制服务器发送状态信息,当接收到当前状态信息为故障状态或超过阈值时间没有收到当前状态信息时,将数据库服务器的所有任务切换到该数据库服务器对应的备用数据库服务器或者其他数据库服务器。
[0050]具体地,当前状态信息为故障状态或超过阈值时间没有收到当前状态信息时,将数据库服务器的所有任务统一切换到数据库服务器对应的备用数据库服务器;或者将数据库服务器的所有任务根据负载信息切换到其他数据库服务器。
[0051]本发明实施例提供的服务器负载均衡方法,能够根据服务器负载值弹性化分配数据处理任务,从而实现服务器负载均衡。
[0052]专业人员应该还可以进一步意识到,结合本文中所公开的实施例描述的各示例的单元及算法步骤,能够以电子硬件、计算机软件或者二者的结合来实现,为了清楚地说明硬件和软件的可互换性,在上述说明中已经按照功能一般性地描述了各示例的组成及步骤。这些功能究竟以硬件还是软件方式来执行,取决于技术方案的特定应用和设计约束条件。专业技术人员可以对每个特定的应用来使用不同方法来实现所描述的功能,但是这种实现不应认为超出本发明的范围。
[0053]结合本文中所公开的实施例描述的方法或算法的步骤可以用硬件、处理器执行的软件模块,或者二者的结合来实施。软件模块可以置于随机存储器(RAM)、内存、只读存储器(ROM)、电可编程ROM、电可擦除可编程ROM、寄存器、硬盘、可移动磁盘、CD-ROM、或技术领域内所公知的任意其它形式的存储介质中。
[0054]以上所述的【具体实施方式】,对本发明的目的、技术方案和有益效果进行了进一步详细说明,所应理解的是,以上所述仅为本发明的【具体实施方式】而已,并不用于限定本发明的保护范围,凡在本发明的精神和原则之内,所做的任何修改、等同替换、改进等,均应包含在本发明的保护范围之内。
【主权项】
1.一种服务器负载均衡方法,其特征在于,所述方法包括: 控制服务器接收应用服务器发送的数据处理请求; 所述控制服务器判断所述数据处理请求的类型; 当所述数据处理请求为读取数据请求时,所述控制服务器获取每台数据库服务器的负载信息,根据所述负载信息得到每台数据库服务器的负载值; 所述控制服务器根据所述每台数据库服务器的当前负载值和当前总负载值,将所述数据处理请求分配到第一数据库服务器进行处理。2.根据权利要求1所述的服务器负载均衡方法,其特征在于,所述控制服务器根据所述每台数据库服务器的当前负载值和当前总负载值,将所述数据处理请求分配到第一数据库服务器进行处理具体包括: 当所述当前总负载值小于所述理论总负载值时,将所述数据处理请求分配到理论负载值与当前负载值差别最大的第一数据库服务器。3.根据权利要求1所述的服务器负载均衡方法,其特征在于,所述控制服务器根据所述每台数据库服务器的当前负载值和当前总负载值,将所述数据处理请求分配到第一数据库服务器进行处理具体包括: 当所述当前总负载值小于所述理论总负载值时,将所述数据处理请求分配到当前负载值最小的第一数据库服务器。4.根据权利要求3所述的服务器负载均衡方法,其特征在于,所述将所述数据处理请求分配到当前负载值最小的第一数据库服务器具体包括: 所述控制服务器利用当前负载值最小且处于正常工作状态的数据库服务器进行数据读取。5.根据权利要求1所述的服务器负载均衡方法,其特征在于,所述控制服务器根据所述每台数据库服务器的当前负载值和当前总负载值,将所述数据处理请求分配到第一数据库服务器进行处理具体包括: 当所述当前总负载值小于所述理论总负载值时,将所述数据处理请求分配到任一当前负载值不大于理论负载值的第一数据库服务器。6.根据权利要求1所述的服务器负载均衡方法,其特征在于,所述控制服务器根据所述每台数据库服务器的当前负载值和当前总负载值,将所述数据处理请求分配到第一数据库服务器进行处理具体包括: 当所述当前总负载值等于所述理论总负载值时,将所述数据处理请求分配到新投入的第一数据库服务器进行处理。7.根据权利要求1所述的服务器负载均衡方法,其特征在于,所述方法还包括: 所述数据库服务器向所述控制服务器发送状态信息,当接收到当前状态信息为故障状态或超过阈值时间没有收到当前状态信息时,将所述数据库服务器的所有任务切换到该数据库服务器对应的备用数据库服务器或者其他数据库服务器。8.根据权利要求7所述的服务器负载均衡方法,其特征在于,当接收到当前状态信息为故障状态或超过阈值时间没有收到当前状态信息时,将所述数据库服务器的所有任务切换到该数据库服务器对应的备用数据库服务器或者其他数据库服务器具体包括: 当前状态信息为故障状态或超过阈值时间没有收到当前状态信息时,将所述数据库服务器的所有任务统一切换到所述数据库服务器对应的备用数据库服务器;或者将所述数据库服务器的所有任务根据负载信息切换到其他数据库服务器。
【文档编号】H04L29/08GK105915644SQ201610440518
【公开日】2016年8月31日
【申请日】2016年6月17日
【发明人】曾向群
【申请人】北京汉唐自远技术股份有限公司
网友询问留言 已有0条留言
  • 还没有人留言评论。精彩留言会获得点赞!
1