《多服务器自适应任务调度方法及装置.pdf》由会员分享,可在线阅读,更多相关《多服务器自适应任务调度方法及装置.pdf(10页完整版)》请在专利查询网上搜索。
1、10申请公布号CN102006314A43申请公布日20110406CN102006314ACN102006314A21申请号200910195021222申请日20090902H04L29/08200601H04L12/5620060171申请人中国银联股份有限公司地址200135上海市浦东新区含笑路36号银联大厦72发明人陈林马东良74专利代理机构中国专利代理香港有限公司72001代理人谭佐晞李家麟54发明名称多服务器自适应任务调度方法及装置57摘要本发明提出了一种多服务器自适应任务调度方法和装置。其中,所述多服务器自适应任务调度方法包括如下步骤启动调度服务所在的服务器,接收调用请求并读取。
2、配置信息;根据所述配置信息以及预定的服务器选择算法选择被调度服务器;当被调度服务器被确定后,判断所述被调度服务器的可用状态,并根据判断结果对选择出的被调度服务器进行调度;如果调度成功则返回,如果调度失败则重新选择被调度服务器并进行后续处理。51INTCL19中华人民共和国国家知识产权局12发明专利申请权利要求书2页说明书5页附图2页CN102006327A1/2页21一种多服务器自适应任务调度方法,所述方法包括如下步骤A1启动调度服务所在的服务器,接收调用请求并读取配置信息;A2根据所述配置信息以及预定的服务器选择算法选择被调度服务器;A3当被调度服务器被确定后,判断所述被调度服务器的可用状态。
3、;A4如果所述被调度服务器的可用状态为“可用”,则开始调用所述被调度服务器上的服务;A5如果调用失败,则将所述被调度服务器的可用状态设置为“不可用”,并将所述被调度服务器的已调度失败次数加1,然后根据所述配置信息重新选择被调度服务器,或者丢弃所述调用请求后返回;A6如果所述被调度服务器的可用状态为“不可用”,则判断所述被调度服务器的已调度失败次数是否达到了阈值,如果所述已调度失败次数达到了所述阈值,则将所述被调度服务器的可用状态设置为“可用”,同时将所述被调度服务器的已调度失败次数设置为0,并尝试调用所述被调度服务器上的服务;A7如果调度成功则返回,如果调度失败则返回步骤A5。2根据权利要求1。
4、所述的多服务器自适应任务调度方法,其特征在于,所述配置信息以文件或数据库的方式存在,用于存储所有服务器的基准个数和正常个数,并且当所述被调用服务器上的被调用服务启动时将所述正常个数加1,当所述被调用服务器上的被调用服务停止时将所述正常个数减1。3根据权利要求12中任一个权利要求所述的多服务器自适应任务调度方法,其特征在于,所述预定的服务器选择算法为循环复用算法,所述循环复用算法依次轮询每个服务器。4根据权利要求12中任一个权利要求所述的多服务器自适应任务调度方法,其特征在于,所述预定的服务器选择算法为随机选择算法,所述随机选择算法根据随机函数产生的随机数选择服务器。5根据权利要求12中任一个权。
5、利要求所述的多服务器自适应任务调度方法,其特征在于,所述预定的服务器选择算法为加权选择算法,所述加权选择算法根据每个服务器的使用策略选择服务器。6根据权利要求15中任一个权利要求所述的多服务器自适应任务调度方法,其特征在于,所述阈值是用户预先定义的,并存储在所述配置信息中。7一种多服务器自适应任务调度装置,所述多服务器自适应任务调度装置包括配置信息存储模块、初始化模块、服务器选择模块、服务器调度模块、调度失败次数设置模块、调度失败次数比较模块和服务器状态更改模块;其中,所述配置信息存储模块与所述初始化模块相连接,用于存储配置信息;所述初始化模块与所述服务器选择模块相连接,用于启动调度服务所在的。
6、服务器,并从所述配置信息存储模块处读取所述配置信息,并将读取到的所述配置信息发送到所述服务器选择模块,同时,将所述配置信息中的调度失败次数阈值发送到所述调度失败次数比较模块;所述服务器选择模块与所述服务器调度模块相连接,用于根据接收到的所述配置信息以及预定的服务器选择算法选择被调度服务器,并将选择结果发送给所述服务器调度模权利要求书CN102006314ACN102006327A2/2页3块;所述服务器调度模块分别与所述调度失败次数设置模块、所述调度失败次数比较模块和所述服务器状态更改模块相连接,所述服务器调度模块接收调度请求并在接收到被调度服务器选择结果后,判断被选择的被调度服务器的可用状态。
7、,并根据判断结果对所述被调度服务器进行调度;所述调度失败次数设置模块与所述服务器调度模块相连接,用于接收所述服务器调度模块的通知而设置指定服务器的调度失败次数,并将设置结果返回给所述服务器调度模块;所述调度失败次数比较模块与所述服务器调度模块相连接,用于接收所述服务器调度模块的通知而将指定服务器的调度失败次数与预定的阈值相比较,并将比较结果返回给所述服务器调度模块;所述服务器状态更改模块与所述服务器调度模块相连接,用于接收所述服务器调度模块的通知而更改指定服务器的状态信息,并将更改结果返回给所述服务器调度模块。8根据权利要求7所述的多服务器自适应任务调度装置,其特征在于,所述服务器调度模块的调。
8、度过程如下如果所述被调度服务器的可用状态为“可用”,则开始调用所述被调度服务器上的服务,如果调用失败,则通知所述服务器状态更改模块将所述被调度服务器的可用状态设置为“不可用”,并通知调度失败次数设置模块将所述被调度服务器的已调度失败次数加1,然后根据所述配置信息重新选择被调度服务器,或者丢弃所述调用请求后返回;如果所述被调度服务器的可用状态为“不可用”,则通知所述调度失败次数比较模块判断所述被调度服务器的已调度失败次数是否达到了阈值,如果所述已调度失败次数达到了所述阈值,则通知所述服务器状态更改模块将所述被调度服务器的可用状态设置为“可用”,同时通知所述调度失败次数设置模块将所述被调度服务器的。
9、已调度失败次数设置为0,并尝试调用所述被调度服务器上的服务,如果调度成功则返回,如果调度失败则通知所述服务器选择模块重新进行被调度服务器的选择。9根据权利要求78中任一个权利要求所述的多服务器自适应任务调度装置,其特征在于,所述配置信息用于存储所有服务器的基准个数和正常个数,并且当所述被调用服务器上的被调用服务启动时将所述正常个数加1,当所述被调用服务器上的被调用服务停止时将所述正常个数减1。10根据权利要求79所述的多服务器自适应任务调度装置,其特征在于,所述预定的服务器选择算法为循环复用算法,所述循环复用算法依次轮询每个服务器。11根据权利要求79所述的多服务器自适应任务调度装置,其特征在。
10、于,所述预定的服务器选择算法为随机选择算法,所述随机选择算法根据随机函数产生的随机数选择服务器。12根据权利要求79所述的多服务器自适应任务调度装置,其特征在于,所述预定的服务器选择算法为加权选择算法,所述加权选择算法根据每个服务器的使用策略选择服务器。13根据权利要求712所述的多服务器自适应任务调度装置,其特征在于,所述阈值是用户预先定义的,并存储在所述配置信息存储模块中。权利要求书CN102006314ACN102006327A1/5页4多服务器自适应任务调度方法及装置技术领域0001本发明涉及任务调度方法及装置,更具体地,涉及多服务器自适应任务调度方法及装置。背景技术0002目前,随着。
11、网络应用的日益广泛,服务器系统的数据流量成倍增加,从而传统类型的服务器系统的数据处理能力受到极大挑战。0003因此,为了解决上述问题,如下两种方式被广泛使用1进行硬件升级,购买配置更高、性能更好的服务器,此方法简单易行,然而成本过高并会导致现有资源的浪费,且下一次业务量提升时还会面临同样的问题;2采用集群技术,即利用两台以上的服务器进行协同工作,该方案具有高的可靠性和强大灵活的系统扩充能力。0004然而,当两台以上的服务器进行协同工作时必然涉及负载均衡问题,即多服务器间的任务调度。目前常用的多服务器任务调度方式为使用中间件技术。但是,该方式具有如下缺点购买、配置和管理成本高,并且调度服务所在的。
12、主机即服务器必须独立于被调度服务所在的所有主机,因为如果调度服务所在的主机上存在被调度服务,而其他主机上也存在被调度服务时,即使通过现有中间件产品的负载均衡参数进行控制,一旦调度请求发出,则调度服务所在的主机只要有丝毫空闲资源,就会优先调度本机服务,即不能实现真正的负载均衡,并且不能做到诸如循环复用、随机选择、加权选择等多样化的需求。发明内容0005为了解决上述现有技术方案所存在的缺陷,本发明提出了一种可以以自适应方式在多服务器间进行任务调度的方法及装置。0006本发明的目的是通过以下技术方案实现的0007一种多服务器自适应任务调度方法,所述方法包括如下步骤0008A1启动调度服务所在的服务器。
13、,接收调用请求并读取配置信息;0009A2根据所述配置信息以及预定的服务器选择算法选择被调度服务器;0010A3当被调度服务器被确定后,判断所述被调度服务器的可用状态;0011A4如果所述被调度服务器的可用状态为“可用”,则开始调用所述被调度服务器上的服务;0012A5如果调用失败,则将所述被调度服务器的可用状态设置为“不可用”,并将所述被调度服务器的已调度失败次数加1,然后根据所述配置信息重新选择被调度服务器,或者丢弃所述调用请求后返回;0013A6如果所述被调度服务器的可用状态为“不可用”,则判断所述被调度服务器的已调度失败次数是否达到了阈值,如果所述已调度失败次数达到了所述阈值,则将所述。
14、被调度服务器的可用状态设置为“可用”,同时将所述被调度服务器的已调度失败次数设置为0,并尝试调用所述被调度服务器上的服务;说明书CN102006314ACN102006327A2/5页50014A7如果调度成功则返回,如果调度失败则返回步骤A5。0015在上面所公开的方案中,优选地,所述配置信息以文件或数据库的方式存在,用于存储所有服务器的基准个数和正常个数,并且当所述被调用服务器上的被调用服务启动时将所述正常个数加1,当所述被调用服务器上的被调用服务停止时将所述正常个数减1。0016在上面所公开的方案中,可选地,所述预定的服务器选择算法为循环复用算法,所述循环复用算法依次轮询每个服务器。00。
15、17在上面所公开的方案中,可选地,所述预定的服务器选择算法为随机选择算法,所述随机选择算法根据随机函数产生的随机数选择服务器。0018在上面所公开的方案中,可选地,所述预定的服务器选择算法为加权选择算法,所述加权选择算法根据每个服务器的使用策略选择服务器。0019在上面所公开的方案中,优选地,所述阈值是用户预先定义的,并存储在所述配置信息中。0020本发明的目的还可以通过以下技术方案实现0021一种多服务器自适应任务调度装置,所述多服务器自适应任务调度装置包括配置信息存储模块、初始化模块、服务器选择模块、服务器调度模块、调度失败次数设置模块、调度失败次数比较模块和服务器状态更改模块;0022其。
16、中,所述配置信息存储模块与所述初始化模块相连接,用于存储配置信息;0023所述初始化模块与所述服务器选择模块相连接,用于启动调度服务所在的服务器,并从所述配置信息存储模块处读取所述配置信息,并将读取到的所述配置信息发送到所述服务器选择模块,同时,将所述配置信息中的调度失败次数阈值发送到所述调度失败次数比较模块;0024所述服务器选择模块与所述服务器调度模块相连接,用于根据接收到的所述配置信息以及预定的服务器选择算法选择被调度服务器,并将选择结果发送给所述服务器调度模块;0025所述服务器调度模块分别与所述调度失败次数设置模块、所述调度失败次数比较模块和所述服务器状态更改模块相连接,所述服务器调。
17、度模块接收调度请求并在接收到被调度服务器选择结果后,判断被选择的被调度服务器的可用状态,并根据判断结果对所述被调度服务器进行调度;0026所述调度失败次数设置模块与所述服务器调度模块相连接,用于接收所述服务器调度模块的通知而设置指定服务器的调度失败次数,并将设置结果返回给所述服务器调度模块;0027所述调度失败次数比较模块与所述服务器调度模块相连接,用于接收所述服务器调度模块的通知而将指定服务器的调度失败次数与预定的阈值相比较,并将比较结果返回给所述服务器调度模块;0028所述服务器状态更改模块与所述服务器调度模块相连接,用于接收所述服务器调度模块的通知而更改指定服务器的状态信息,并将更改结果。
18、返回给所述服务器调度模块。0029在上面所公开的方案中,优选地,所述服务器调度模块的调度过程如下0030如果所述被调度服务器的可用状态为“可用”,则开始调用所述被调度服务器上的服务,如果调用失败,则通知所述服务器状态更改模块将所述被调度服务器的可用状态设说明书CN102006314ACN102006327A3/5页6置为“不可用”,并通知调度失败次数设置模块将所述被调度服务器的已调度失败次数加1,然后根据所述配置信息重新选择被调度服务器,或者丢弃所述调用请求后返回;0031如果所述被调度服务器的可用状态为“不可用”,则通知所述调度失败次数比较模块判断所述被调度服务器的已调度失败次数是否达到了阈。
19、值,如果所述已调度失败次数达到了所述阈值,则通知所述服务器状态更改模块将所述被调度服务器的可用状态设置为“可用”,同时通知所述调度失败次数设置模块将所述被调度服务器的已调度失败次数设置为0,并尝试调用所述被调度服务器上的服务,如果调度成功则返回,如果调度失败则通知所述服务器选择模块重新进行被调度服务器的选择。0032在上面所公开的方案中,优选地,所述配置信息用于存储所有服务器的基准个数和正常个数,并且当所述被调用服务器上的被调用服务启动时将所述正常个数加1,当所述被调用服务器上的被调用服务停止时将所述正常个数减1。0033在上面所公开的方案中,可选地,所述预定的服务器选择算法为循环复用算法,所。
20、述循环复用算法依次轮询每个服务器。0034在上面所公开的方案中,可选地,所述预定的服务器选择算法为随机选择算法,所述随机选择算法根据随机函数产生的随机数选择服务器。0035在上面所公开的方案中,可选地,所述预定的服务器选择算法为加权选择算法,所述加权选择算法根据每个服务器的使用策略选择服务器。0036在上面所公开的方案中,优选地,所述阈值是用户预先定义的,并存储在所述配置信息存储模块中。0037本发明所公开的多服务器自适应任务调度方法和装置具有如下优点调度服务通过对各个服务器状态的维护而实现真正的负载均衡即包括调度服务所在的服务器的负载均衡,并可使故障服务器自动隔离,且当故障服务器恢复后又能主。
21、动恢复调用。附图说明0038结合附图,本发明的技术特征以及优点将会被本领域技术人员更好地理解,其中0039图1为根据本发明的实施例的多服务器自适应任务调度方法的流程图;0040图2为根据本发明的实施例的多服务器自适应任务调度装置的结构图;具体实施方式0041图1为根据本发明的实施例的多服务器自适应任务调度方法的流程图。如图1所示,本发明所公开的多服务器自适应任务调度方法包括如下步骤A1启动调度服务所在的服务器,并读取配置信息;A2根据所述配置信息以及预定的服务器选择算法选择被调度服务器;A3当被调度服务器被确定后,判断所述被调度服务器的可用状态;A4如果所述被调度服务器的可用状态为“可用”,则。
22、开始调用所述被调度服务器上的服务;A5如果调用失败,则将所述被调度服务器的可用状态设置为“不可用”,并将所述被调度服务器的已调度失败次数加1,然后根据配置信息重新选择被调度服务器,或者丢弃所述调用请求后返回;A6如果所述被调度服务器的可用状态为“不可用”,则判断所述被调度服务器的已调度失败次数是否达到了阈值,如果所述已调度失败次数达到了所述阈值,则将所述被说明书CN102006314ACN102006327A4/5页7调度服务器的可用状态设置为“可用”,同时将所述被调度服务器的已调度失败次数设置为0,并尝试调用所述被调度服务器上的服务;A7如果调度成功则返回,如果调度失败则返回步骤A5。004。
23、2其中,所述配置信息以文件或数据库的方式存在,用于存储所有服务器的基准个数和正常个数。基准个数是指部署有被调用服务的所有服务器的总个数,而正常个数是指可用状态为“可用”的所有服务器的总个数。并且,当服务器上的被调用服务启动时将所述正常个数加1,当服务器上的被调用服务停止时将所述正常个数减1。此外,调度服务所在的主机启动调度服务时,所述调度服务读取配置信息并且在进程内维护一个结构体数组,用于记录所述基准个数和正常个数以及各服务器的可用状态和已调度失败次数。0043如图1所示,本发明所公开的多服务器自适应任务调度方法的步骤A2中的预定服务器选择算法为循环复用算法,即依次轮询每个服务器。可选地,所述。
24、预定服务器选择算法可以是用户自定义的任何其他选择算法,例如,所述预定服务器选择算法可以是随机选择算法,即根据随机函数产生的随机数而选择服务器,或加权选择算法,即根据每个服务器的使用策略而选择服务器。0044如图1所示,本发明所公开的多服务器自适应任务调度方法的步骤A6中的阈值是用户预先定义的,并存储在配置信息中。0045图2为根据本发明的实施例的多服务器自适应任务调度装置的结构图。如图2所示,本发明所公开的多服务器自适应任务调度装置包括配置信息存储模块1、初始化模块2、服务器选择模块3、服务器调度模块4、调度失败次数设置模块5、调度失败次数比较模块6和服务器状态更改模块7。其中,所述配置信息存。
25、储模块1与初始化模块2相连接,用于存储配置信息。所述初始化模块2与服务器选择模块3相连接,用于启动调度服务所在的服务器,并从配置信息存储模块1处读取配置信息,并将读取到的配置信息发送到服务器选择模块3,同时,将配置信息中的已调度失败次数阈值发送到调度失败次数比较模块6。所述服务器选择模块3与服务器调度模块4相连接,用于根据所接收到的配置信息以及预定的服务器选择算法选择被调度服务器,并将选择结果发送给服务器调度模块4。所述服务器调度模块4分别与调度失败次数设置模块5、调度失败次数比较模块6和服务器状态更改模块7相连接,服务器调度模块4接收调度请求并在接收到被调度服务器选择结果后,判断被选择的被调。
26、度服务器的可用状态,如果所述被调度服务器的可用状态为“可用”,则开始调用所述被调度服务器上的服务,如果调用失败,则通知服务器状态更改模块7将所述被调度服务器的可用状态设置为“不可用”,并通知调度失败次数设置模块5将所述被调度服务器的已调度失败次数加1,然后根据配置信息重新选择被调度服务器,或者丢弃所述调用请求后返回;如果所述被调度服务器的可用状态为“不可用”,则通知调度失败次数比较模块6判断所述被调度服务器的已调度失败次数是否达到了阈值,如果所述已调度失败次数达到了所述阈值,则通知服务器状态更改模块7将所述被调度服务器的可用状态设置为“可用”,同时通知调度失败次数设置模块5将所述被调度服务器的。
27、已调度失败次数设置为0,并尝试调用所述被调度服务器上的服务,如果调度成功则返回,如果调度失败则通知服务器选择模块3重新进行被调度服务器的选择。所述调度失败次数设置模块5与服务器调度模块4相连接,用于接收服务器调度模块4的通知而设置指定服务器的调度失败次数,并将设置结果返回给服务器调度模块4。所述调度失败次数比较模块6与服务器调度模块说明书CN102006314ACN102006327A5/5页84相连接,用于接收服务器调度模块4的通知而将指定服务器的调度失败次数与预定的阈值相比较,并将比较结果返回给服务器调度模块4。所述服务器状态更改模块7与服务器调度模块4相连接,用于接收服务器调度模块4的通。
28、知而更改指定服务器的状态信息,并将更改结果返回给服务器调度模块4。0046其中,所述配置信息用于存储所有服务器的基准个数和正常个数。基准个数是指部署有被调用服务的所有服务器的总个数,而正常个数是指可用状态为“可用”的所有服务器的总个数。并且,当服务器上的被调用服务启动时将所述正常个数加1,当服务器上的被调用服务停止时将所述正常个数减1。0047如图2所示,本发明所公开的多服务器自适应任务调度装置中的预定服务器选择算法为循环复用算法,即依次轮询每个服务器。可选地,所述预定服务器选择算法可以是用户自定义的任何其他选择算法,例如,所述预定服务器选择算法可以是随机选择算法,即根据随机函数产生的随机数而选择服务器,或加权选择算法,即根据每个服务器的使用策略而选择服务器。0048如图2所示,本发明所公开的多服务器自适应任务调度装置中的阈值是用户预先定义的,并存储在配置信息中。0049尽管本发明是通过上述的优选实施方式进行描述的,但是其实现形式并不局限于上述的实施方式。应该认识到在不脱离本发明主旨和范围的情况下,本领域技术人员可以对本发明做出不同的变化和修改。说明书CN102006314ACN102006327A1/2页9图1说明书附图CN102006314ACN102006327A2/2页10图2说明书附图CN102006314A。