一种基于多个服务器的数据处理系统的制作方法

文档序号:8301786阅读:223来源:国知局
一种基于多个服务器的数据处理系统的制作方法
【技术领域】
[0001]本发明涉及一种计算机领域,尤其涉及一种基于多个服务器的数据处理系统。
【背景技术】
[0002]目前出现了越来越多的系统平台,用于提供各种服务,如订餐,微博互动、订票或者生成app等,这就对用于支撑平台运转的数据处理系统的数据处理能力提出了很高的要求。很多数据处理系统都是借助于若干个服务器构建的,但如何有效利用所有服务器,最大限度的发挥所有服务器的运算能力,使运算能力差的服务器也能够在系统内发挥作用,但不至于过度工作导致发生故障,这些都是需要解决的技术问题。

【发明内容】

[0003]针对上述技术问题,本发明设计开发了一种有效利用各服务器,最大限度发挥服务器的运算能力,降低服务器单机的故障率的基于多个服务器的数据处理系统。
[0004]本发明提供的技术方案为:
[0005]一种基于多个服务器的数据处理系统,包括:
[0006]η个计算服务器;
[0007]备用服务器;
[0008]管理服务器,其用于建立一个数据处理请求的队列,在该对列内数据处理请求是按管理服务器接收的时间排序的,管理服务器还用于建立一个包含η个计算服务器的执行列表,所述管理服务器同时向每个计算服务器发出η个测试数据处理请求,并记录每个计算服务器完成η个测试数据处理请求所消耗的测试时间,记为测试时间序列,依照所消耗的测试时间从少到多将η个计算服务器从上到下排序,记为初始排序,并为每个计算服务器赋予基准分值a,下一个计算服务器的基准分值为上一个计算服务器的基准分值加I ;
[0009]其中,在所述管理服务器逐个分配数据处理请求时,按η个计算服务器的当前分值从小到大进行分配,每当一个计算服务器被分配了一个数据处理请求时,该计算服务器的当前分值c为:c = b+l+n,b代表分配该数据处理请求之前的分值,每当一个计算服务器完成了一个数据处理请求时,该计算服务器的当前分值c为:c = b-1 ;n个计算服务器按照当前分值从小到大排序;
[0010]当出现一个计算服务器的当前分值达到其基准分值的1.5倍时,则所述管理服务器启用一个备用服务器,并将该备用服务器暂时编入至执行列表的最上方的一个位置;所述管理服务器将队列中连续的η个数据处理请求全部分配给备用服务器,并记录备用服务器完成该η个数据处理请求所消耗的测试时间,将该测试时间插入至测试时间序列中,使该测试时间的大小比上一个计算服务器的测试时间值大,而比下一个计算服务器的测试时间值小,从而确定备用服务器在初始排序中的位置,并为该备用服务器赋予相应的基准分值,该备用服务器的基准分值为上一个计算服务器的基准分值加0.1 ;将备用服务器的基准分值乘以1.5倍,换算成当前分值,将备用服务器记为计算服务器;从该η个数据处理请求之后的第I个数据处理请求开始,再按n+1个计算服务器的当前分值从小到大进行分配。
[0011]优选的是,所述的基于多个服务器的数据处理系统中,所述管理服务器计算每个计算服务器的平均处理时间t,t = N/T,其中,N代表到当前时刻一个计算服务器所处理的数据处理请求,T为从一个计算服务器开始处理第一个数据处理请求到当前时刻的时长,并建立一个动态列表,该动态列表内依照计算服务器的平均处理时间从小到大排序;将该动态列表与执行列表的当前排序比较,当动态列表中存在20%?30%的计算服务器的排序与在执行列表中不一致,则将动态列表内的内容更新为新的执行列表,为新的执行列表内的每个计算服务器赋予基准分值,下一个计算服务器的基准分值为下一个计算服务器的基准分值加1,所述管理服务器重新按新的执行列表分配数据处理请求。
[0012]优选的是,所述的基于多个服务器的数据处理系统中,当动态列表中存在20%的计算服务器的排序与在执行列表中不一致,则将动态列表内的内容更新为新的执行列表。
[0013]优选的是,所述的基于多个服务器的数据处理系统中,η取值为10,列表内最上方的一个计算服务器的基准分值取值为101。
[0014]本发明所述的基于多个服务器的数据处理系统通过管理服务器建立了一个包含η个计算服务器的执行列表,在这个执行列表内为计算服务器依照数据处理能力进行排序,并赋予相应的基准分值,逐个分配数据处理请求时,依照计算服务器的当前分值从小到大进行分配,每当一个计算服务器被分配一个数据处理请求时,该计算服务器的当前分值为c为.-C = b+l+n,b代表分配该数据处理请求之前的分值,从而将该计算服务器排到列表的最后一个位置,每当一个计算服务器完成了一个数据处理请求时,该计算服务器的当前分值c为:c = b-1,则将该计算服务器向前排一个位置,从而实现按照计算服务器的实际数据处理能力分配任务,从而达到有效利用各服务器,最大限度发挥服务器的运算能力的目的,并且对于数据处理较慢的服务器,其排序靠后,相对处理的请求也少,也避免了因负载过大而导致机器故障的问题。此外,在现有的资源占用到一定程度之后,就启用备用服务器,利用前面的η个数据处理请求判断备用服务器的数据处理能力,再将备用服务器排进执行列表,本发明可动态地为所有的服务器分配任务,提高了数据处理系统的工作效率,降低故障率。
【附图说明】
[0015]图1为本发明所述的基于多个服务器的数据处理系统的结构示意图。
【具体实施方式】
[0016]下面结合附图对本发明做进一步的详细说明,以令本领域技术人员参照说明书文字能够据以实施。
[0017]如图1所示,本发明提供一种基于多个服务器的数据处理系统,包括:η个计算服务器;备用服务器;管理服务器,其用于建立一个数据处理请求的队列,在该对列内数据处理请求是按管理服务器接收的时间排序的,管理服务器还用于建立一个包含η个计算服务器的执行列表,所述管理服务器同时向每个计算服务器发出η个测试数据处理请求,并记录每个计算服务器完成η个测试数据处理请求所消耗的测试时间,记为测试时间序列,依照所消耗的测试时间从少到多将η个计算服务器从上到下排序,记为初始排序,并为每个计算服务器赋予基准分值a,下一个计算服务器的基准分值为上一个计算服务器的基准分值加I。
[0018]为了考察现有的η个计算服务器的数据处理能力,先向每个计算服务器发出η个测试数据处理请求,记录每个计算服务器完成这η个测试数据处理请求所消耗的测试时间。测试时间消耗越少,证明该计算服务器的数据处理能力越强,其排序应靠前,所被赋予的基准分值越小。该执行列表从上往下计,下一个计算服务器的基准分值比上一个计算服务器的基准分值大I。
[0019]其中,在所述管理服务器逐个分配数据处理请求时,按η个计算服务器的当前分值从小到大进行分配,每当一个计算服务器被分配了一个数据处理请求时,该计算服务器的当前分值c为:c = b+l+n,b代表分配该数据处理请求之前的分值,每当一个计算服务器完成了一个数据处理请求时,该计算服务器的当前分值c为:c = b-1 ;n个计算服务器按照当前分值从小到大排序。
[0020]由于管理服务器上建立了一个数据处理请求的队列,该队列内依据接收的时间排列数据处理请求,管理服务器逐个将队列内的数据处理请求分配下去。在分配过程中,计算服务器的当前分值发生变化,依据当前分值对所有的计算服务器进行排序,即执行列表内各计算服务器的排序可能是一直在改变的。举例来说,有4个计算服务器A、B、C、D,η = 4,从上到下,其基准分值分别为101、102、103和104,第I个数据处理请求分配给Α,A的当前分值变106,第2个数据处理请求分配给B,B的当前分值为107,则现在排序变为了 C (103)、D (104)、A (106)、B (107),此时 A 完成了任务,则排序又变为 C (103)、D (104)、A(105)、Β (107)。A虽然完成了任务,但并将其直接排回到执行列表的最上方,由之前排在A之后的C和D继续接收任务,也有助于提高对各服务器的利用效率。如果出现两个计算服务器的当前分值相同的情况,则随机选择一个分配数据处理请求,但一般不会太出现这一情况。在比如订餐,订票的系统中,处理每个数据处理请求所消耗的时间基本是相同的,本发明更适用这种单个数据处理请求的数据量不大,在个数较多,且数据处理请求提出的频率较高的情况。
[0021]这样,对于数据处理能力强的计算服务器,其一方面排序靠上,另一方面其处理速度快,每次都很快回到靠前的位置,又再次接收新的数据处理请求,从而得到有效利用;而相应地,对于数据处理能力弱的计算服务器,则排序始终靠后,有足够的时间和资源对数据处理请求进行处理,不会超出自身的负载限制,降低了发生故障的几率。
[0
当前第1页1 2 
网友询问留言 已有0条留言
  • 还没有人留言评论。精彩留言会获得点赞!
1