一种分布式集群负载均衡并行调度系统及方法转让专利

申请号 : CN201610480848.8

文献号 : CN106131141B

文献日 :

基本信息:

PDF:

法律信息:

相似专利:

发明人 : 吴响李满堂沙岩王换换

申请人 : 徐州医科大学

摘要 :

本发明公开了一种分布式集群负载均衡并行调度系统及方法,涉及负载均衡调度技术领域。本发明通过虚拟一个IP地址用来接收用户请求消息,各集群中的Master服务器通过发送Hello报文交换彼此信息,选出空闲值最大的集群绑定虚拟IP地址,绑定后发送Statement报文通告全网;集群Master服务器查询任务表,并按一定计算方法计算空闲表和交互表中数据,得出最佳响应集群,通过发送Push报文将请求消息推送到最佳响应集群,以此来实现对等集群间响应请求消息的负载均衡。集群Master服务器中存在任务表、空闲表、交互表、计算结果表四张表用来调度请求消息;四种报文:Hello、Push、Exchange和Statement用来维护集群之间的关系。

权利要求 :

1.一种分布式集群负载均衡并行调度方法,其特征在于:通过虚拟IP地址绑定对等集群中的最优者,通过报文协调各对等集群之间的关系,利用Master服务器表的结合查询机制协调请求消息任务分配,Master服务器是每个集群中存在的一台管理本集群其它服务器的设备;

(1)当绑定了虚拟IP地址的集群Master服务器接收到用户请求后,首先查看任务表,根据表中内容,确定可处理此请求的集群的范围;

(2)如果本集群可以处理此请求消息便继续查询交互表,判断交互表中是否存在已执行过此请求的记录;

若存在,则结合空闲表和交互表中的数据进行计算,将得出的结果放入计算结果表中,查看计算结果表中的数值,数值最大的成为执行该请求的集群;

若不存在,则本集群处理此请求消息;

如果本集群不可以处理此请求消息,则结合任务表中得到的可以处理此请求的集群范围查询空闲表,从空闲表中得到可执行此请求消息的集群范围后再结合交互表进行分析:判断交互表中是否存在已执行过此请求的记录;

若存在,则结合空闲表和交互表中的数据进行计算,将得出的结果放入计算结果表中,查看计算结果表中的数值,数值最大的成为执行该请求的集群;

若不存在,则空闲表中值最大的集群处理该请求消息;

(3)绑定了虚拟IP地址的集群Master服务器通过发送Push报文,将该请求消息传递给确定的执行请求的集群执行;

集群Master服务器通过调用各表,合理分配请求:

任务表:其中存放各集群可以处理请求的信息的集合;

空闲表:其中存放各集群所剩资源情况的集合;

交互表:其中存放各对等集群已处理过请求消息的种类及处理各请求所用效率值;

计算结果表:其中存放空闲表和交互表信息综合计算值,计算方法为:空闲值*60%+效率值*40%。

2.根据权利要求1所述的一种分布式集群负载均衡并行调度方法,其特征在于:通过四种报文协调对等集群之间关系:Hello报文:周期性发送,里面携带对等集群中Master服务器的地址和空闲值;

Statement报文:当集群Master服务器与虚拟IP地址进行绑定后,便向其他集群发送此报文,声明自己为用户请求消息第一到达点;

Push报文:当接收用户消息的集群不符合满足应答的最佳条件时,通过此报文将用户请求传递给最佳响应集群;

Exchange报文:交换各集群已经处理过的请求的信息。

3.根据权利要求2所述的一种分布式集群负载均衡并行调度方法,其特征在于:虚拟IP与集群绑定过程如下:(1)虚拟出一个IP地址来接收用户请求消息;

(2)各集群之间周期发送Hello报文,交换彼此的IP地址信息和空闲值,比较各空闲值的大小,得出最大空闲值的集群,将该集群中Master服务器的IP地址与虚拟IP地址进行绑定;

(3)绑定了虚拟IP的集群将向其他集群发送一个Statement报文,通告自己为用户请求消息第一接收点;

(4)因为空闲值是实时变化的,且Hello报文也是周期更新,所以虚拟IP地址的绑定也是动态变化的。

4.根据权利要求2所述的一种分布式集群负载均衡并行调度方法,其特征在于:利用报文维护更新表状态形式如下:(1)Hello报文中通告的各集群的空闲值放入空闲表中,供集群后期比较使用;

(2)当一个集群处理完一个请求消息时,通过Exchange报文将处理结果和效率值发送给各集群,通知他们更新交互表中的信息。

5.根据权利要求2所述的一种分布式集群负载均衡并行调度方法,其特征在于:Hello报文里面携带对等集群中Master服务器的空闲值包括集群服务器CPU以及内存资源所剩大小。

6.一种分布式集群负载均衡并行调度系统,其特征在于:通过虚拟IP地址绑定对等集群中的最优者,通过报文协调各对等集群之间的关系,利用Master服务器表的结合查询机制协调请求消息任务分配,Master服务器是每个集群中存在的一台管理本集群其它服务器的设备;该系统包括:查询模块,当绑定了虚拟IP地址的集群Master服务器接收到用户请求后,首先查看任务表,根据表中内容,确定可处理此请求的集群的范围;

处理模块,如果本集群可以处理此请求消息便继续查询交互表,判断交互表中是否存在已执行过此请求的记录;若存在,则结合空闲表和交互表中的数据进行计算,将得出的结果放入计算结果表中,查看计算结果表中的数值,数值最大的成为执行该请求的集群,若不存在,则本集群处理此请求消息;如果本集群不可以处理此请求消息,则结合任务表中得到的可以处理此请求的集群范围查询空闲表,从空闲表中得到可执行此请求消息的集群范围后再结合交互表进行分析,判断交互表中是否存在已执行过此请求的记录,若存在,则结合空闲表和交互表中的数据进行计算,将得出的结果放入计算结果表中,查看计算结果表中的数值,数值最大的成为执行该请求的集群,若不存在,则空闲表中值最大的集群处理该请求消息;

执行模块,绑定了虚拟IP地址的集群Master服务器通过发送Push报文,将该请求消息传递给确定的执行请求的集群执行;

集群Master服务器通过调用各表,合理分配请求:

任务表:其中存放各集群可以处理请求的信息的集合;

空闲表:其中存放各集群所剩资源情况的集合;

交互表:其中存放各对等集群已处理过请求消息的种类及处理各请求所用效率值;

计算结果表:其中存放空闲表和交互表信息综合计算值,计算方法为:空闲值*60%+效率值*40%。

说明书 :

一种分布式集群负载均衡并行调度系统及方法

技术领域

[0001] 本发明涉及负载均衡调度技术领域,具体是一种分布式集群负载均衡并行调度系统及方法。

背景技术

[0002] 集群技术的使用,解决了单台服务器组成的系统中央处理器、输入输出处理速度慢等方面出现的问题。集群技术的广泛应用,确实为广大用户带来了方便和经济效益。但是,关于集群间负载均衡的问题一直没有得到很好的解决,往往只是实现了部分负载均衡,并没有实现资源的完全合理调度。在实际生活中,经常会出现设置一台中央服务器来管理各集群之间的关系,以此来实现负载均衡,这难免又增加了开销并且容易引起单点故障,导致集群之间无法高效响应用户的请求信息。

发明内容

[0003] 为了克服上述现有技术的缺点,本发明提供了一种分布式集群负载均衡并行调度系统及方法,真正实现任务分配的负载均衡,各对等集群之间实现分布式处理,互相协调管理。
[0004] 本发明是以如下技术方案实现的:一种分布式集群负载均衡并行调度方法,通过虚拟IP地址绑定对等集群中的最优者,通过报文协调各对等集群之间的关系,利用Master服务器表的结合查询机制协调请求消息任务分配,Master服务器是每个集群中存在的一台管理本集群其它服务器的设备;
[0005] (1)当绑定了虚拟IP地址的集群Master服务器接收到用户请求后,首先查看任务表,根据表中内容,确定可处理此请求的集群的范围;
[0006] (2)如果本集群可以处理此请求消息便继续查询交互表,判断交互表中是否存在已执行过此请求的记录;
[0007] 若存在,则结合空闲表和交互表中的数据进行计算,将得出的结果放入计算结果表中,查看计算结果表中的数值,数值最大的成为执行该请求的集群;
[0008] 若不存在,则本集群处理此请求消息;
[0009] 如果本集群不可以处理此请求消息,则结合任务表中得到的可以处理此请求的集群范围查询空闲表,从空闲表中得到可执行此请求消息的集群范围后再结合交互表进行分析:判断交互表中是否存在已执行过此请求的记录;
[0010] 若存在,则结合空闲表和交互表中的数据进行计算,将得出的结果放入计算结果表中,查看计算结果表中的数值,数值最大的成为执行该请求的集群;
[0011] 若不存在,则空闲表中值最大的集群处理该请求消息;
[0012] 绑定了虚拟IP地址的集群Master服务器通过发送Push报文,将该请求消息传递给确定的执行请求的集群执行。
[0013] 集群Master服务器通过调用各表,合理分配请求:
[0014] 任务表:其中存放各集群可以处理请求信息的集合;
[0015] 空闲表:其中存放各集群所剩资源情况的集合;
[0016] 交互表:其中存放各对等集群已处理过请求消息的种类及处理各请求所用效率值;
[0017] 计算结果表:其中存放空闲表和交互表信息综合计算值,计算方法为:空闲值*60%+效率值*40%。
[0018] 优选的,通过四种报文协调对等集群之间关系:
[0019] Hello报文:周期性发送,里面携带对等集群中Master服务器的地址和空闲值;
[0020] Statement报文:当集群Master服务器与虚拟IP地址进行绑定后,便向其他集群发送此报文,声明自己为用户请求消息第一到达点;
[0021] Push报文:当接收用户消息的集群不符合满足应答的最佳条件时,通过此报文将用户请求传递给最佳响应集群;
[0022] Exchange报文:交换各集群已经处理过的请求信息,主要表示为处理效率。
[0023] 优选的,虚拟IP与集群绑定过程如下:
[0024] (1)虚拟出一个IP地址来接收用户请求消息;
[0025] (2)各集群之间周期发送Hello报文,交换彼此的IP地址信息和空闲值。比较各空闲值的大小,得出最大空闲值的集群,将该集群中Master服务器的IP地址与虚拟IP地址进行绑定;
[0026] (3)绑定了虚拟IP的集群将向其他集群发送一个Statement报文,通告自己为用为请求消息第一接收点;
[0027] (4)因为空闲值是实时变化的,且Hello报文也是周期更新,所以虚拟IP地址的绑定也是动态变化的。
[0028] 优选的,利用报文维护更新表状态形式如下:
[0029] (1)Hello报文中通告的各集群的空闲值放入空闲表中,供集群后期比较使用;
[0030] (2)当一个集群处理完一个请求消息时,通过Exchange报文将处理结果和效率值发送给各集群,通知他们更新交互表中的信息。
[0031] 优选的,Hello报文里面携带对等集群中Master服务器的空闲值包括集群服务器CPU以及内存资源所剩大小。
[0032] 一种分布式集群负载均衡并行调度系统,通过虚拟IP地址绑定对等集群中的最优者,通过报文协调各对等集群之间的关系,利用Master服务器表的结合查询机制协调请求消息任务分配,Master服务器是每个集群中存在的一台管理本集群其它服务器的设备;该系统包括
[0033] 查询模块,当绑定了虚拟IP地址的集群Master服务器接收到用户请求后,首先查看任务表,根据表中内容,确定可处理此请求的集群的范围;
[0034] 处理模块,如果本集群可以处理此请求消息便继续查询交互表,判断交互表中是否存在已执行过此请求的记录;若存在,则结合空闲表和交互表中的数据进行计算,将得出的结果放入计算结果表中,查看计算结果表中的数值,数值最大的成为执行该请求的集群,若不存在,则本集群处理此请求消息;如果本集群不可以处理此请求消息,则结合任务表中得到的可以处理此请求的集群范围查询空闲表,从空闲表中得到可执行此请求消息的集群范围后再结合交互表进行分析:判断交互表中是否存在已执行过此请求的记录,若存在,则结合空闲表和交互表中的数据进行计算,将得出的结果放入计算结果表中,查看计算结果表中的数值,数值最大的成为执行该请求的集群,若不存在,则空闲表中值最大的集群处理该请求消息;
[0035] 执行模块,绑定了虚拟IP地址的集群Master服务器通过发送Push报文,将该请求消息传递给确定的执行请求的集群执行。
[0036] 本发明的有益效果是:各对等集群之间通过交换报文消息、查询各自表机制并结合虚拟IP的使用很好实现了负载均衡;虚拟IP地址与集群Master服务器绑定且实时变化,但用户看到的服务器始终不变,在实现分布式负载均衡的前提下很好的屏蔽了变化过程对用户可见,简化了用户操作;数据包和表机制的实现使对等集群间的任务分配更加合理和完善。

附图说明

[0037] 下面结合附图对本发明作进一步说明。
[0038] 图1为发明中的整体架构示意图;
[0039] 图2为本方法工作流程图;
[0040] 图3为集群Master服务器中表分布图;
[0041] 图4为包格式示意图;
[0042] 图5是本系统原理框图。

具体实施方式

[0043] 如图1所示,所有对等集群连接在同一台交换机上,意味着都可以接收用户请求消息。虚拟IP作为用户信息接收点可以与任一集群绑定,实现分布式负载均衡任务分配。
[0044] 如图3所示,集群Master服务器中四张表存在的大致位置,它们之间相互协调工作,保证负载均衡的高效运行。集群Master服务器存储表及表查询机制:
[0045] 任务表:其中存放各集群可以处理请求信息的集合;
[0046] 空闲表:其中存放各集群所剩资源情况的集合;
[0047] 交互表:其中存放各对等集群已处理过请求消息的种类及处理各请求所用效率值;
[0048] 计算结果表:其中存放空闲表和交互表信息综合计算值,计算方法为:空闲值*60%+效率值*40%。
[0049] 如图2所示,对等集群之间实现任务分配负载均衡的工作流程如下:
[0050] (1)当绑定了虚拟IP地址的集群Master服务器接收到用户请求后,首先查看任务表。根据表中内容,确定可处理此请求的集群的范围;
[0051] (2)如果本集群可以处理此请求消息便继续查询交互表;
[0052] (3)判断交互表中是否存在已执行过此请求的记录,若存在,则结合空闲表和交互表中的数据进行计算,计算公式为:空闲值*60%+效率值*40%,将得出的结果放入计算结果表中;
[0053] 查看计算结果表中的数值,数值最大的成为执行该请求的集群;
[0054] 绑定了虚拟IP地址的集群Master服务器通过发送Push报文,将该请求消息传递给该集群执行;
[0055] (4)如果交互表中无执行过此请求的记录,则本集群处理此请求消息;
[0056] (5)如果本集群不可以处理此请求消息,则结合任务表中得到的可以处理此请求的集群范围查询空闲表;
[0057] (6)从空闲表中得到可执行此请求消息的集群范围后再结合交互表进行分析:
[0058] 判断交互表中是否存在已执行过此请求的记录,若存在,则结合空闲表和交互表中的数据进行计算,计算公式为:空闲值*60%+效率值*40%,将得出的结果放入计算结果表中;
[0059] 查看计算结果表中的数值,数值最大的成为执行该请求的集群;
[0060] 绑定了虚拟IP地址的集群Master服务器通过发送Push报文,将该请求消息传递给该集群执行;
[0061] 如果交互表中无执行过此请求的记录,则空闲表中值最大的集群处理该请求消息;
[0062] (7)绑定了虚拟IP地址的集群Master服务器通过发送Push报文,将该请求消息传递给该集群执行。
[0063] 在集群开始工作之前,前期的虚拟IP绑定工作流程如下:
[0064] (1)虚拟出一个IP地址来接收用户请求消息;
[0065] (2)各集群之间周期发送Hello包,交换彼此的IP地址信息和空闲值。比较各空闲值的大小,得出最大空闲值的集群,将该集群中Master服务器的IP地址与虚拟IP地址进行绑定;
[0066] (3)绑定了虚拟IP的集群将向其他集群发送一个Statement报文,通告自己为用为请求消息第一接收点;
[0067] (4)因为空闲值是实时变化的,且Hello报文也是周期更新,所以虚拟IP地址的绑定也是动态变化的。
[0068] 更新表状态数据包机制和包格式如图4所示:
[0069] Hello报文:Command字段为1,Source IP字段为集群Master服务器IP地址,Destination IP字段为集群组播地址224.0.1.124,Options字段里包含各集群空闲值。周期性(40秒)发送,里面携带集群中Master服务器的地址和空闲值(空闲值包括:集群服务器CPU、内存等资源所剩大小);
[0070] Statement报文:Command字段为2,Source IP字段为绑定虚拟IP的集群Master服务器IP地址,Destination IP字段为集群组播地址224.0.1.124。当集群Master服务器与虚拟IP地址进行绑定后,便向其他集群发送此报文,声明自己为用户请求消息第一到达点;
[0071] Push报文:Command字段为3,Source IP字段为绑定虚拟IP的集群Master服务器IP地址,Destination IP字段为最佳响应集群IP地址。当接收用户消息的集群不符合满足应答的最佳条件时,通过此报文将用户请求传递给最佳响应集群;
[0072] Exchange报文:Command字段为4,Source IP字段为集群Master服务器IP地址,Destination IP字段为集群组播地址224.0.1.124,Options字段里包含已处理消息类型和效率值。交换各集群已经处理过的请求信息,主要表示为处理效率。
[0073] 利用报文维护更新表状态形式如下:
[0074] (1)Hello报文中通告的各集群的空闲值放入空闲表中,供集群后期比较使用;
[0075] (2)当一个集群处理完一个请求消息时,通过Exchange报文将处理结果和效率值发送给各集群,通知他们更新交互表中的信息。
[0076] 如图5所示,一种分布式集群负载均衡并行调度系统,通过虚拟IP地址绑定对等集群中的最优者,通过报文协调各对等集群之间的关系,利用Master服务器表的结合查询机制协调请求消息任务分配,Master服务器是每个集群中存在的一台管理本集群其它服务器的设备;
[0077] 查询模块,当绑定了虚拟IP地址的集群Master服务器接收到用户请求后,首先查看任务表,根据表中内容,确定可处理此请求的集群的范围;
[0078] 处理模块,如果本集群可以处理此请求消息便继续查询交互表,判断交互表中是否存在已执行过此请求的记录;
[0079] 若存在,则结合空闲表和交互表中的数据进行计算,将得出的结果放入计算结果表中,查看计算结果表中的数值,数值最大的成为执行该请求的集群;
[0080] 若不存在,则本集群处理此请求消息;
[0081] 如果本集群不可以处理此请求消息,则结合任务表中得到的可以处理此请求的集群范围查询空闲表,从空闲表中得到可执行此请求消息的集群范围后再结合交互表进行分析:判断交互表中是否存在已执行过此请求的记录;
[0082] 若存在,则结合空闲表和交互表中的数据进行计算,将得出的结果放入计算结果表中,查看计算结果表中的数值,数值最大的成为执行该请求的集群;
[0083] 若不存在,则空闲表中值最大的集群处理该请求消息;
[0084] 执行模块,绑定了虚拟IP地址的集群Master服务器通过发送Push报文,将该请求消息传递给该集群执行。
[0085] 本发明通过虚拟IP地址与集群Master服务器的绑定,实时动态改变,实现分布式负载均衡。
[0086] (1)虚拟一个IP地址用来接收用户请求消息,各集群中的Master服务器通过发送Hello报文交换彼此信息,选出空闲值最大的集群绑定虚拟IP地址,绑定后发送Statement报文通告全网;
[0087] (2)集群Master服务器查询任务表,并按一定计算方法计算空闲表和交互表中数据,得出最佳响应集群,通过发送Push报文将请求消息推送到最佳响应集群。