一种服务器负载均衡系统及其方法与流程

文档序号:29850175发布日期:2022-04-30 07:35阅读:149来源:国知局
一种服务器负载均衡系统及其方法与流程

1.本发明涉及通信技术领域,尤其涉及一种服务器负载均衡系统及其方法。


背景技术:

2.计算设备之间的网络通信常常通过例如使用分组交换网络从一个设备向另一个传输网络分组来执行。在一些客户端-服务器网络环境中,可以使用服务器集群计算机来处置到和来自多种客户端设备的通信。可以以被设计成确保服务器计算机在处理网络通信时不超负荷的方式来使用网络负载均衡技术。
3.如cn105208133a现有技术公开了一种服务器、负载均衡器以及服务器负载均衡方法和系统,负载均衡技术普遍应用于服务器集群中,由独立的负载均衡软件或硬件,按照设定的负载均衡策略,将服务请求分发至集群中不同的服务器,达到整体服务器集群的处理均衡目的。目前普遍采用的负载均衡策略均是基于被动均摊的原则,比如轮询策略(round-robin),或者带有权重的轮询策略(weighted round-robin)。这些均衡策略技术是假设集群中的各服务器具有相似的处理能力,而实际应用中集群内各服务器性能参差不齐,并动态变化。其次,现有的均衡策略技术缺乏依据服务器实时处理情况进行动态调整的能力。
4.在传统的负载均衡模型下,由于客户端连接的服务器动态分配,客户端每次连接服务器后,尤其当大量客户端频繁上线下线时,服务器间都需要将连接信息在所有节点间同步,很容易导致死锁等问题,最终可能导致用户量下降,尤其在节点多的情况下,每两个节点间都要同步数据,形成复杂的网状结构,增加了服务器的负担,影响即时通讯服务器的性能。
5.为了解决本领域普遍存在减少服务器间同步客户端信息的工作量、智能程度较低、无法减轻服务器的负载、处理效率低下、没有考虑用户请求之间的差异,不能准确地判断服务器真实的负载状态等等问题,作出了本发明。


技术实现要素:

6.本发明的目的在于,针对所存在的不足,提出了一种服务器负载均衡系统及其方法。
7.本发明采用如下技术方案:
8.一种服务器负载均衡系统,包括管理服务器和服务器集群,服务器集群处理管理服务器分发的用户访问请求,并实时计算自身的负载指标反馈给管理服务器;管理服务器包括请求检测模块、反馈模块、计算模块、分配模块和执行模块;
9.所述计算模块计算所述管理服务器的通信信道的负载,并检测服务器集群的负担过重的节点是否已低于预定性能水平;
10.所述分配模块接收到用户的访问请求,并将访问请求从请求队列中取出,交由所述请求检测模块估计访问请求的任务量和预期完成时间;
11.所述反馈模块接收服务器集群的反馈结果,并根据所述服务器集群的反馈结果通
过所述执行模块将访问请求发送给匹配的服务器;
12.所述执行模块根据所述反馈模块、所述计算模块和所述请求检测模块的数据将与访问请求匹配的服务器分配给所述用户;其中,分配给用户的服务器为负载能力盈余的服务器;
13.所述计算模块包括若干个数据接口和状态监视器,所述状态监视器用于对各个数据接口进行监视;所述数据接口通过通信信道从网络中接收数据单元,并将数据单元通过多条路径发送给所述用户;所述状态监视器收集与多个路径相关联的各个服务器的各个i/o端口和各个队列的状态数据,并使用收集到的各个i/o端口和各个队列的状态数据为多个路径中的各个路径生成路径状态信息;
14.其中,通过分析所述状态数据以分析所述服务器通信信道的负载指数fi,其中,所述负载指数fi根据下式进行计算:
[0015][0016]
w1+w2+w3=1
[0017]
式中,ci为服务器cpu的负载;ni为服务器内存的负载;ii为服务器各个i/o端口的负载;q为负载等级基数,其值与所述服务器通信信道的变化幅值有关;w1为服务器cpu的载权重;w2为服务器内存的负载权重;w3为服务器各个i/o端口的负载权重;
[0018]
根据负载指数fj对所述节点的性能平均分配代价heathy(x1,x2,

,xm)进行计算:
[0019][0020]
式中,m为整个系统的服务器数量,(x1,x2,

,xm)表示服务器中的n个任务请求中能分配到的任务数为xi,且满足n为服务器的任务请求数量;若heathy(x1,x2,

,xm)大于设定的预警阈值,则触发对所述节点所对应的服务器进行重新分配;若heathy(x1,x2,

,xm)小于预警阈值,且其值越小说明负载分布越均匀,当前服务器性能越好。
[0021]
可选的,所述反馈模块包括从服务器集群接收连接请求,所述连接请求所述管理服务器和用户之间建立连接,所述反馈模块确定所述管理服务器和每个用户之间的连接数;若连接数小于或等于管理服务器与每个用户的连接数,从多个用户中选择调控权重较大的用户的连接请求,并对调控权重较大的用户授权其调换访问服务器的i/o端口,以实现所述用户和管理服务器建立连接关系。
[0022]
所述请求检测模块包括请求检测器和拾取器,所述拾取器用于对所述访问请求队列中的访问请求进行提取,并将所述访问请求送入所述请求检测器中进行分析;其中,所述访问请求经过所述分配模块进行标记,并根据访问的时间顺序进行排列;
[0023]
所述请求检测器用于对触发访问请求的用户的任务量和完成时间进行预估,并将分析结果传递到所述执行模块;
[0024]
获取所述访问请求的起始访问时间点r
set
和终止访问时间r
end
,根据下式计算所述用户的访问任务量taski:
[0025][0026]
式中,为服务器当前的负载指标;s为服务器集群的可用数量;di为访问请求队列中的第i个访问请求;其中,所述访问队列为di={d1,d2,
……
,ds};
[0027]
对应于该访问请求的服务器负载指标根据下式进行计算:
[0028][0029]
式中,mi为所述访问请求的排队时间,满足:yi为服务器任务池中积压的任务数量;zi为服务器每次运行完成的任务数量。
[0030]
可选的,所述分配模块包括任务存储器和更新单元,所述任务存储器用于收集用户的访问请求,并将所述访问请求存储在存储器中;所述更新单元基于所述存储器中的访问请求数量,并对其进行更新;所述更新单元将所述访问请求队列依据时间戳进行更新,当所述请求检测模块将所述访问请求队列中的访问请求提取后,再次对所述访问请求队列进行更新。
[0031]
可选的,所述分配模块还包括标记单元,所述标记单元对所述访问请求列表中的所述访问请求进行标记;所述标记单元包括标记器和识别器,所述识别器对各个用户标识进行识别,其中,所述用户标识包括id地址和网关;所述标记器根据所述识别器的识别结果,对触发所述访问请求的用户进行密钥标记,并将所述密钥标记传输至所述执行模块中。
[0032]
可选的,所述执行模块将与访问请求匹配的服务器分配给所述用户并验证所述用户的密钥标记,若核验通过,则向该密钥标记所对应的用户提供预连接;若核验不通过,则触发预警,并发出付出预警信号;其中,所述执行模块向核验通过的用户分配时,将用户分配至负载能力盈余的服务器网关,实现维持该用户的连接状态。
[0033]
本发明还提供一种服务器负载均衡方法,所述均衡方法包括以下步骤:
[0034]
setp1:将访问服务器的各个访问请求进行收集,并汇集形成访问请求队列,其中,各个所述访问请求队列按照时间戳进行排列;
[0035]
setp2:在setp1的基础上,通过分配模块依次提取所述访问请求队列中的访问请求,并将其依次送入请求检测模块中,对该所述访问请求分析用户的访问任务量和访问时间;
[0036]
setp3:在setp2的基础上,所述分配模块在提取所述访问请求队列后,对触发访问请求的用户进行标记;
[0037]
setp4:在setp3的基础上,通过所述执行模块对触发访问请求的用户触发分配至负载能力盈余的服务器网关;
[0038]
setp5:通过反馈模块对管理服务器的连接数进行监控,并反馈至所述执行模块,当出现负载超过触发阈值,将用户的服务器网关进行调整。
[0039]
可选的,所述均衡方法还包括:通过请求检测模块对触发所述访问请求的任务量和预期完成时间进行计算,并反馈至所述执行单元,并配合所述执行模块将用户分配至负
载能力盈余的服务器网关,实现维持该用户的连接状态。
[0040]
可选的,所述均衡方法还包括:若某个访问请求不存在匹配,则将访问请求放置在所述访问请求队列的队首,并执行重新匹配的操作。
[0041]
本发明所取得的有益效果是:
[0042]
1.通过所述执行模块对所述服务器的重新分配能够确保所述服务器的负载更加均衡,提升所述管理服务器的稳定性和可靠性;
[0043]
2.通过设置调控权重,能有效的过滤掉短时间内大规模的访问请求,也极大降低所述管理服务器的负载或过载的压力;
[0044]
3.通过所述任务池提供的对任务的缓存机制,可以减少频繁地创建和回收任务实例产生的系统开销,并节省存储资源,极大的缓解所述管理服务器的额外工作量,有效的降低管理服务器的负载;
[0045]
4.通过请求检测模块对触发所述访问请求的任务量和预期完成时间进行计算,并反馈至所述执行单元,并配合所述执行模块将用户分配至负载能力盈余的服务器网关,实现维持该用户的连接状态;
[0046]
5.通过所述执行模块根据所述反馈模块、所述请求检测模块和所述计算模块数据,将用户分配至负载能力盈余的服务器网关中,兼顾所述服务器和用户访问请求的均衡,同时,也极大的缓解所述管理服务器的过载。
[0047]
为使能更进一步了解本发明的特征及技术内容,请参阅以下有关本发明的详细说明与附图,然而所提供的附图仅用于提供参考与说明,并非用来对本发明加以限制。
附图说明
[0048]
从以下结合附图的描述可以进一步理解本发明。图中的部件不一定按比例绘制,而是将重点放在示出实施例的原理上。在不同的视图中,相同的附图标记指定对应的部分。
[0049]
图1为本发明的均衡方法控制流程示意图。
[0050]
图2为本发明的整体方框示意图。
[0051]
图3为本发明的控制流程示意图。
[0052]
图4为本发明的所述访问请求与所述管理服务器的方框流程示意图。
[0053]
图5为本发明的执行模块和请求检测模块、计算模块、反馈模块方框示意图。
具体实施方式
[0054]
以下是通过特定的具体实施例来说明本发明的实施方式,本领域技术人员可由本说明书所公开的内容了解本发明的优点与效果。本发明可通过其他不同的具体实施例加以施行或应用,本说明书中的各项细节也可基于不同观点与应用,在不悖离本发明的精神下进行各种修饰与变更。另外,本发明的附图仅为简单示意说明,并非依实际尺寸的描绘,事先声明。以下的实施方式将进一步详细说明本发明的相关技术内容,但所公开的内容并非用以限制本发明的保护范围。
[0055]
实施例一;
[0056]
根据图1、图2、图3、图4和图5,本实施例提供一种服务器负载均衡系统,包括管理服务器和服务器集群,服务器集群处理管理服务器分发的用户访问请求,并实时计算自身
的负载指标反馈给管理服务器;管理服务器包括请求检测模块、反馈模块、计算模块、分配模块、执行模块和处理器;
[0057]
所述处理器分别与所述请求检测模块、反馈模块、计算模块、分配模块、执行模块控制连接,并基于所述处理器的集中对所述请求检测模块、反馈模块、计算模块、分配模块、执行模块进行集中控制;
[0058]
所述分配模块与所述请求检测模块相互配合,使得对所述管理服务器能够对所述用户的访问负载进行均衡,提升整个所述管理服务器向所述用户提供可靠的服务;
[0059]
所述分配模块还对访问请求进行统计,对各个用户的访问请求依据时间戳的先后进行排序,并依次提供给所述请求检测模块,使得所述请求检测模块对所述访问请求的任务量和预期完成时间进行计算;
[0060]
所述计算模块计算所述管理服务器的通信信道的负载,并检测服务器集群的负担过重的节点是否已低于预定性能水平;其中,所述性能水平根据设定的监控阈值进行确定,且在对不同访问请求和不同的时间段设置的监控阈值均不相同;
[0061]
所述分配模块接收到用户的访问请求,并将访问请求从请求队列中取出,交由所述请求检测模块估计访问请求的任务量和预期完成时间;
[0062]
所述反馈模块接收服务器集群的反馈结果,并根据所述服务器集群的反馈结果通过所述执行模块将访问请求发送给匹配的服务器;
[0063]
所述执行模块根据所述反馈模块、所述计算模块和所述请求检测模块的数据将与访问请求匹配的服务器分配给所述用户;其中,分配给用户的服务器为负载能力盈余的服务器;
[0064]
另外,在通过所述计算模块对所述管理服务器的通信信道进行计算的过程中,使得检测所述管理服务器自身的通信节点的状态,若超过设定的监测阈值,则通过所述执行模块对所述用户的访问服务器的i/o端口或者路径进行调整;
[0065]
其中,所述计算模块包括若干个数据接口和状态监视器,所述状态监视器用于对各个数据接口进行监视;所述数据接口通过通信信道从网络中接收数据单元,并将数据单元通过多条路径发送给所述用户;所述状态监视器收集与多个路径相关联的各个服务器的各个服务器的i/o端口和各个队列的状态数据,并使用收集到的各个i/o端口和各个队列的状态数据为多个路径中的各个路径生成路径状态信息;
[0066]
其中,通过分析所述状态数据以分析所述服务器通信信道的负载指数fi,其中,所述负载指数fi根据下式进行计算:
[0067][0068]
w1+w2+w3=1
[0069]
式中,ci为服务器cpu的负载;ni为服务器内存的负载;ii为服务器各个i/o端口的负载;q为负载等级基数,其值与所述服务器通信信道的变化幅值有关;w1为服务器cpu的载权重;w2为服务器内存的负载权重;w3为服务器各个i/o端口的负载权重;
[0070]
若服务器处于空闲状态,存在:负载指数fj=0;
[0071]
若服务器处于高负载范围内,存在:负载指数fj>负载阈值g,其中,g为预置的负载阈值;
[0072]
若服务器处于低负载或高效运行的范围内,存在:负载指数fj<负载阈值g,其中,g为预置的负载阈值;
[0073]
根据负载指数fj对所述节点的性能平均分配代价heathy(x1,x2,

,xm)进行计算:
[0074][0075]
式中,m为整个系统的服务器数量,(x1,x2,

,xm)表示服务器中的n个任务请求中能分配到的任务数为xi,且满足n为服务器的任务请求数量;若heathy(x1,x2,

,xm)大于设定的预警阈值,则触发对所述节点所对应的服务器进行重新分配;若heathy(x1,x2,

,xm)小于预警阈值,且其值越小说明负载分布越均匀,当前服务器性能越好;
[0076]
其中,对所述服务器的重新分配由所述执行模块进行操作;同时,通过所述执行模块的处理操作后,能够确保所述服务器的负载更加均衡,提升所述管理服务器的稳定性和可靠性;
[0077]
可选的,所述反馈模块包括从服务器集群接收连接请求,所述连接请求所述管理服务器和用户之间建立连接,所述反馈模块确定所述管理服务器和每个用户之间的连接数;若连接数小于或等于管理服务器与每个用户的连接数,从多个用户中选择调控权重较大的用户的连接请求,并对调控权重较大的用户授权其调换访问i/o端口,以实现将所述用户和管理服务器建立连接关系;
[0078]
所述反馈模块对各个用户的连接数进行计算,并与所述管理服务器的允许的连接数进行比较,若超过允许的连接数,则对同一用户的多次访问请求进行剔除,以实现缓解所述管理服务器的压力;
[0079]
若同一用户在短时间内多次访问所述服务器,则该用户的所述调控权重就变小;通过设置调控权重,能有效的过滤掉短时间内大规模的访问请求,也极大降低所述管理服务器的负载过载的压力;
[0080]
其中,假设所述调控权重设置为gh,所述调控权重gh的取值满足:
[0081][0082]
式中,[]
+
为调控权重取正值才有效;αh为同一用户在同一周期中访问的数量;ω为权重基数值,其值由根据服务器在一个周期内允许的访问阈值数量进行设定,例如:有的服务器允许一个周期中最多允许刷新两次,有的允许刷新三次;
[0083]
所述请求检测模块包括请求检测器和拾取器,所述拾取器用于对所述访问请求队列中的访问请求进行提取,并将所述访问请求送入所述请求检测器中进行分析;其中,所述访问请求经过所述分配模块进行标记,并根据访问的时间顺序进行排列;
[0084]
所述请求检测器用于对触发访问请求的用户的任务量和完成时间进行预估,并将分析结果传递到所述执行模块;
[0085]
获取所述访问请求的起始访问时间点r
set
和终止访问时间r
end
,根据下式计算所述用户的访问任务量taski:
[0086][0087]
式中,为服务器当前的负载指标;s为服务器集群的可用数量;di为访问请求队列中的第i个访问请求;其中,所述访问队列为di={d1,d2,
……
,ds};
[0088]
对应于该访问请求的服务器负载指标根据下式进行计算:
[0089][0090]
式中,r
set
为起始访问时间点;r
end
为终止访问时间;mi为所述访问请求的排队时间,满足:yi为服务器任务池中积压的任务数量;zi为服务器每次运行完成的任务数量;
[0091]
所述管理服务器设有任务池,用于对服务器当前的任务进行存储;其中,所述任务池是业务层存储任务的容器,是在线程间共享任务的实例池,当所述服务器启动时,任务池被创建,停止时被清除;由于所述任务池提供的对任务的缓存机制,可以减少频繁地创建和回收任务实例产生的系统开销,并节省存储资源,极大的缓解所述管理服务器的额外工作量,有效的降低管理服务器的负载;
[0092]
可选的,所述分配模块包括任务存储器和更新单元,所述任务存储器用于收集用户的访问请求,并将所述访问请求存储在存储器中;所述更新单元基于所述存储器中的访问请求数量,并对其进行更新;所述更新单元将所述访问请求队列依据时间戳进行更新,当所述请求检测模块将所述访问请求队列中的访问请求提取后,再次对所述访问请求队列进行更新;若所述访问请求队列中的某一个请求任务被处理后,则将该访问请求的任务剔除,并对所述访问请求队列进行更新;
[0093]
同时,所述分配模块还对所述任务请求进行标记,以实现对所述请求任务进行快速的响应;其中,所述分配模块还包括标记单元,所述标记单元对所述访问请求列表中的所述访问请求进行标记;所述标记单元包括标记器和识别器,所述识别器对各个用户标识进行识别,其中,所述用户标识包括但是不局限于以下列举的几种:id地址、用户名称和网关;所述标记器根据所述识别器的识别结果,对触发所述访问请求的用户进行密钥标记,并将所述密钥标记传输至所述执行模块中;当所述用户的访问请求满足设定的要求,则在负载均衡的条件下,通过所述执行单元对所述用户提供访问;其中,通过所述密钥标记可以有效的防止用户标识被篡改;另外,所述密钥标记传输至所述执行模块中,所述密钥标记可以被所述执行模块解码,以提取所述用户的标识;此时,所述执行模块可以根据所述密钥标记向用户分配负载能力盈余的所述服务器网关,以实现向所述服务器提供访问;
[0094]
可选的,所述执行模块将与访问请求匹配的服务器分配给所述用户并验证所述用户的密钥标记,若核验通过,则向该密钥标记所对应的用户提供预连接;若核验不通过,则触发预警,并发出付出预警信号;其中,所述执行模块向核验通过的用户分配时,将用户分配至负载能力盈余的服务器网关,实现维持该用户的连接状态;
[0095]
本发明还提供一种服务器负载均衡方法,所述均衡方法包括以下步骤:
[0096]
setp1:将访问服务器的各个访问请求进行收集,并汇集形成访问请求队列,其中,各个所述访问请求队列按照时间戳进行排列;
[0097]
setp2:在setp1的基础上,通过分配模块依次提取所述访问请求队列中的访问请求,并将其依次送入请求检测模块中,对该所述访问请求分析用户的访问任务量和访问时间;
[0098]
setp3:在setp2的基础上,所述分配模块在提取所述访问请求队列后,对触发访问请求的用户进行标记;
[0099]
setp4:在setp3的基础上,通过所述执行模块对触发访问请求的用户触发分配至负载能力盈余的服务器网关;
[0100]
setp5:通过反馈模块对管理服务器的连接数进行监控,并反馈至所述执行模块,当出现负载超过触发阈值,将用户的服务器网关进行调整;
[0101]
可选的,所述均衡方法还包括:通过请求检测模块对触发所述访问请求的任务量和预期完成时间进行计算,并反馈至所述执行单元,并配合所述执行模块将用户分配至负载能力盈余的服务器网关,实现维持该用户的连接状态;
[0102]
所述执行模块根据所述反馈模块、所述请求检测模块和所述计算模块数据,将用户分配至负载能力盈余的服务器网关中,兼顾所述服务器和用户访问请求的均衡,同时,也极大的缓解所述管理服务器的过载;
[0103]
可选的,所述均衡方法还包括:若与某个访问请求不存在匹配,则将访问请求放置在所述访问请求队列的队首,并执行重新匹配的操作;当所述访问请求不匹配的时候,则将所述访问请求放置下在所所述访问请求队列的队首,使得所述请求检测模块能优选对该访问请求进行处理。
[0104]
实施例二;
[0105]
本实施例应当理解为至少包含前述任一一个实施例的全部特征,并在其基础上进一步改进,根据图1、图2、图3、图4和图5,还在于为所述服务器集群设定负载阈值量,并在运行的过程中接收所述服务器集群中的每一个服务器的负载量度;
[0106]
基于来自服务器集群中的每一个的负载量度,生成负载的基准量度;
[0107]
同时,为所述服务器集群中的各个服务器配置监控阈值,并基于各个服务器上的负载量度与负载的基线量度偏离监控量,所所述均衡系统还包括监控模块,所述监控模块用于接收相关联的服务器集群中的多个服务器的信息,所述信息包括服务器的故障率和服务器的实时资源负载状态;
[0108]
根据接收到的信息确定与服务器相关的风险级别;所述监控模块从存储有多个服务器信息的数据库接收包括以下至少一项的策略:服务器的累积工作负载值限制和在服务器之间迁移工作负载的规则;
[0109]
另外,基于工作负载值和确定的风险级别将接收到的第一工作负载分配给其中一个服务器;其中,分配接收的第一工作负载基于上述的所述策略触发;
[0110]
同时,所述监控模块确定与当前分配给服务器的工作负载相关的资源负载;其中,基于所确定的资源负载分配接收的第一工作负载;其中接收多个服务器的信息包括向服务器查询与服务器相关联的资源负载和故障率;
[0111]
所述监控模块根据所述偏离量大小生成至少一个的候选服务器列表,所述候选服
务器列表是基于确定的风险级别生成的,并且接收到的第一工作负载被分配给列出的服务器之一;所述监控模块通过预测接收到的第一个工作负载对列出的服务器的假设影响来评估接收到的第一个工作负载;其中,基于评估分配接收的第一工作负载。
[0112]
以上所公开的内容仅为本发明的优选可行实施例,并非因此局限本发明的保护范围,所以凡是运用本发明说明书及附图内容所做的等效技术变化,均包含于本发明的保护范围内,此外,随着技术发展其中的元素可以更新的。
当前第1页1 2 
网友询问留言 已有0条留言
  • 还没有人留言评论。精彩留言会获得点赞!
1