书签 分享 收藏 举报 版权申诉 / 10

多服务器自适应任务调度方法及装置.pdf

  • 上传人:n****g
  • 文档编号:1093872
  • 上传时间:2018-03-31
  • 格式:PDF
  • 页数:10
  • 大小:403.46KB
  • 摘要
    申请专利号:

    CN200910195021.2

    申请日:

    2009.09.02

    公开号:

    CN102006314A

    公开日:

    2011.04.06

    当前法律状态:

    授权

    有效性:

    有权

    法律详情:

    授权|||实质审查的生效IPC(主分类):H04L 29/08申请日:20090902|||公开

    IPC分类号:

    H04L29/08; H04L12/56

    主分类号:

    H04L29/08

    申请人:

    中国银联股份有限公司

    发明人:

    陈林; 马东良

    地址:

    200135 上海市浦东新区含笑路36号银联大厦

    优先权:

    专利代理机构:

    中国专利代理(香港)有限公司 72001

    代理人:

    谭佐晞;李家麟

    PDF完整版下载: PDF下载
    内容摘要

    本发明提出了一种多服务器自适应任务调度方法和装置。其中,所述多服务器自适应任务调度方法包括如下步骤:启动调度服务所在的服务器,接收调用请求并读取配置信息;根据所述配置信息以及预定的服务器选择算法选择被调度服务器;当被调度服务器被确定后,判断所述被调度服务器的可用状态,并根据判断结果对选择出的被调度服务器进行调度;如果调度成功则返回,如果调度失败则重新选择被调度服务器并进行后续处理。

    权利要求书

    1.一种多服务器自适应任务调度方法,所述方法包括如下步骤:(A1)启动调度服务所在的服务器,接收调用请求并读取配置信息;(A2)根据所述配置信息以及预定的服务器选择算法选择被调度服务器;(A3)当被调度服务器被确定后,判断所述被调度服务器的可用状态;(A4)如果所述被调度服务器的可用状态为“可用”,则开始调用所述被调度服务器上的服务;(A5)如果调用失败,则将所述被调度服务器的可用状态设置为“不可用”,并将所述被调度服务器的已调度失败次数加1,然后根据所述配置信息重新选择被调度服务器,或者丢弃所述调用请求后返回;(A6)如果所述被调度服务器的可用状态为“不可用”,则判断所述被调度服务器的已调度失败次数是否达到了阈值,如果所述已调度失败次数达到了所述阈值,则将所述被调度服务器的可用状态设置为“可用”,同时将所述被调度服务器的已调度失败次数设置为0,并尝试调用所述被调度服务器上的服务;(A7)如果调度成功则返回,如果调度失败则返回步骤(A5)。2.根据权利要求1所述的多服务器自适应任务调度方法,其特征在于,所述配置信息以文件或数据库的方式存在,用于存储所有服务器的基准个数和正常个数,并且当所述被调用服务器上的被调用服务启动时将所述正常个数加1,当所述被调用服务器上的被调用服务停止时将所述正常个数减1。3.根据权利要求1-2中任一个权利要求所述的多服务器自适应任务调度方法,其特征在于,所述预定的服务器选择算法为循环复用算法,所述循环复用算法依次轮询每个服务器。4.根据权利要求1-2中任一个权利要求所述的多服务器自适应任务调度方法,其特征在于,所述预定的服务器选择算法为随机选择算法,所述随机选择算法根据随机函数产生的随机数选择服务器。5.根据权利要求1-2中任一个权利要求所述的多服务器自适应任务调度方法,其特征在于,所述预定的服务器选择算法为加权选择算法,所述加权选择算法根据每个服务器的使用策略选择服务器。6.根据权利要求1-5中任一个权利要求所述的多服务器自适应任务调度方法,其特征在于,所述阈值是用户预先定义的,并存储在所述配置信息中。7.一种多服务器自适应任务调度装置,所述多服务器自适应任务调度装置包括配置信息存储模块、初始化模块、服务器选择模块、服务器调度模块、调度失败次数设置模块、调度失败次数比较模块和服务器状态更改模块;其中,所述配置信息存储模块与所述初始化模块相连接,用于存储配置信息;所述初始化模块与所述服务器选择模块相连接,用于启动调度服务所在的服务器,并从所述配置信息存储模块处读取所述配置信息,并将读取到的所述配置信息发送到所述服务器选择模块,同时,将所述配置信息中的调度失败次数阈值发送到所述调度失败次数比较模块;所述服务器选择模块与所述服务器调度模块相连接,用于根据接收到的所述配置信息以及预定的服务器选择算法选择被调度服务器,并将选择结果发送给所述服务器调度模块;所述服务器调度模块分别与所述调度失败次数设置模块、所述调度失败次数比较模块和所述服务器状态更改模块相连接,所述服务器调度模块接收调度请求并在接收到被调度服务器选择结果后,判断被选择的被调度服务器的可用状态,并根据判断结果对所述被调度服务器进行调度;所述调度失败次数设置模块与所述服务器调度模块相连接,用于接收所述服务器调度模块的通知而设置指定服务器的调度失败次数,并将设置结果返回给所述服务器调度模块;所述调度失败次数比较模块与所述服务器调度模块相连接,用于接收所述服务器调度模块的通知而将指定服务器的调度失败次数与预定的阈值相比较,并将比较结果返回给所述服务器调度模块;所述服务器状态更改模块与所述服务器调度模块相连接,用于接收所述服务器调度模块的通知而更改指定服务器的状态信息,并将更改结果返回给所述服务器调度模块。8.根据权利要求7所述的多服务器自适应任务调度装置,其特征在于,所述服务器调度模块的调度过程如下:如果所述被调度服务器的可用状态为“可用”,则开始调用所述被调度服务器上的服务,如果调用失败,则通知所述服务器状态更改模块将所述被调度服务器的可用状态设置为“不可用”,并通知调度失败次数设置模块将所述被调度服务器的已调度失败次数加1,然后根据所述配置信息重新选择被调度服务器,或者丢弃所述调用请求后返回;如果所述被调度服务器的可用状态为“不可用”,则通知所述调度失败次数比较模块判断所述被调度服务器的已调度失败次数是否达到了阈值,如果所述已调度失败次数达到了所述阈值,则通知所述服务器状态更改模块将所述被调度服务器的可用状态设置为“可用”,同时通知所述调度失败次数设置模块将所述被调度服务器的已调度失败次数设置为0,并尝试调用所述被调度服务器上的服务,如果调度成功则返回,如果调度失败则通知所述服务器选择模块重新进行被调度服务器的选择。9.根据权利要求7-8中任一个权利要求所述的多服务器自适应任务调度装置,其特征在于,所述配置信息用于存储所有服务器的基准个数和正常个数,并且当所述被调用服务器上的被调用服务启动时将所述正常个数加1,当所述被调用服务器上的被调用服务停止时将所述正常个数减1。10.根据权利要求7-9所述的多服务器自适应任务调度装置,其特征在于,所述预定的服务器选择算法为循环复用算法,所述循环复用算法依次轮询每个服务器。11.根据权利要求7-9所述的多服务器自适应任务调度装置,其特征在于,所述预定的服务器选择算法为随机选择算法,所述随机选择算法根据随机函数产生的随机数选择服务器。12.根据权利要求7-9所述的多服务器自适应任务调度装置,其特征在于,所述预定的服务器选择算法为加权选择算法,所述加权选择算法根据每个服务器的使用策略选择服务器。13.根据权利要求7-12所述的多服务器自适应任务调度装置,其特征在于,所述阈值是用户预先定义的,并存储在所述配置信息存储模块中。

    说明书

    多服务器自适应任务调度方法及装置

    技术领域

    本发明涉及任务调度方法及装置,更具体地,涉及多服务器自适应任务调度方法及装置。

    背景技术

    目前,随着网络应用的日益广泛,服务器系统的数据流量成倍增加,从而传统类型的服务器系统的数据处理能力受到极大挑战。

    因此,为了解决上述问题,如下两种方式被广泛使用:(1)进行硬件升级,购买配置更高、性能更好的服务器,此方法简单易行,然而成本过高并会导致现有资源的浪费,且下一次业务量提升时还会面临同样的问题;(2)采用集群技术,即利用两台以上的服务器进行协同工作,该方案具有高的可靠性和强大灵活的系统扩充能力。

    然而,当两台以上的服务器进行协同工作时必然涉及负载均衡问题,即多服务器间的任务调度。目前常用的多服务器任务调度方式为使用中间件技术。但是,该方式具有如下缺点:购买、配置和管理成本高,并且调度服务所在的主机(即服务器)必须独立于被调度服务所在的所有主机,因为如果调度服务所在的主机上存在被调度服务,而其他主机上也存在被调度服务时,即使通过现有中间件产品的负载均衡参数进行控制,一旦调度请求发出,则调度服务所在的主机只要有丝毫空闲资源,就会优先调度本机服务,即不能实现真正的负载均衡,并且不能做到诸如循环复用、随机选择、加权选择等多样化的需求。

    发明内容

    为了解决上述现有技术方案所存在的缺陷,本发明提出了一种可以以自适应方式在多服务器间进行任务调度的方法及装置。

    本发明的目的是通过以下技术方案实现的:

    一种多服务器自适应任务调度方法,所述方法包括如下步骤:

    (A1)启动调度服务所在的服务器,接收调用请求并读取配置信息;

    (A2)根据所述配置信息以及预定的服务器选择算法选择被调度服务器;

    (A3)当被调度服务器被确定后,判断所述被调度服务器的可用状态;

    (A4)如果所述被调度服务器的可用状态为“可用”,则开始调用所述被调度服务器上的服务;

    (A5)如果调用失败,则将所述被调度服务器的可用状态设置为“不可用”,并将所述被调度服务器的已调度失败次数加1,然后根据所述配置信息重新选择被调度服务器,或者丢弃所述调用请求后返回;

    (A6)如果所述被调度服务器的可用状态为“不可用”,则判断所述被调度服务器的已调度失败次数是否达到了阈值,如果所述已调度失败次数达到了所述阈值,则将所述被调度服务器的可用状态设置为“可用”,同时将所述被调度服务器的已调度失败次数设置为0,并尝试调用所述被调度服务器上的服务;

    (A7)如果调度成功则返回,如果调度失败则返回步骤(A5)。

    在上面所公开的方案中,优选地,所述配置信息以文件或数据库的方式存在,用于存储所有服务器的基准个数和正常个数,并且当所述被调用服务器上的被调用服务启动时将所述正常个数加1,当所述被调用服务器上的被调用服务停止时将所述正常个数减1。

    在上面所公开的方案中,可选地,所述预定的服务器选择算法为循环复用算法,所述循环复用算法依次轮询每个服务器。

    在上面所公开的方案中,可选地,所述预定的服务器选择算法为随机选择算法,所述随机选择算法根据随机函数产生的随机数选择服务器。

    在上面所公开的方案中,可选地,所述预定的服务器选择算法为加权选择算法,所述加权选择算法根据每个服务器的使用策略选择服务器。

    在上面所公开的方案中,优选地,所述阈值是用户预先定义的,并存储在所述配置信息中。

    本发明的目的还可以通过以下技术方案实现:

    一种多服务器自适应任务调度装置,所述多服务器自适应任务调度装置包括配置信息存储模块、初始化模块、服务器选择模块、服务器调度模块、调度失败次数设置模块、调度失败次数比较模块和服务器状态更改模块;

    其中,所述配置信息存储模块与所述初始化模块相连接,用于存储配置信息;

    所述初始化模块与所述服务器选择模块相连接,用于启动调度服务所在的服务器,并从所述配置信息存储模块处读取所述配置信息,并将读取到的所述配置信息发送到所述服务器选择模块,同时,将所述配置信息中的调度失败次数阈值发送到所述调度失败次数比较模块;

    所述服务器选择模块与所述服务器调度模块相连接,用于根据接收到的所述配置信息以及预定的服务器选择算法选择被调度服务器,并将选择结果发送给所述服务器调度模块;

    所述服务器调度模块分别与所述调度失败次数设置模块、所述调度失败次数比较模块和所述服务器状态更改模块相连接,所述服务器调度模块接收调度请求并在接收到被调度服务器选择结果后,判断被选择的被调度服务器的可用状态,并根据判断结果对所述被调度服务器进行调度;

    所述调度失败次数设置模块与所述服务器调度模块相连接,用于接收所述服务器调度模块的通知而设置指定服务器的调度失败次数,并将设置结果返回给所述服务器调度模块;

    所述调度失败次数比较模块与所述服务器调度模块相连接,用于接收所述服务器调度模块的通知而将指定服务器的调度失败次数与预定的阈值相比较,并将比较结果返回给所述服务器调度模块;

    所述服务器状态更改模块与所述服务器调度模块相连接,用于接收所述服务器调度模块的通知而更改指定服务器的状态信息,并将更改结果返回给所述服务器调度模块。

    在上面所公开的方案中,优选地,所述服务器调度模块的调度过程如下:

    如果所述被调度服务器的可用状态为“可用”,则开始调用所述被调度服务器上的服务,如果调用失败,则通知所述服务器状态更改模块将所述被调度服务器的可用状态设置为“不可用”,并通知调度失败次数设置模块将所述被调度服务器的已调度失败次数加1,然后根据所述配置信息重新选择被调度服务器,或者丢弃所述调用请求后返回;

    如果所述被调度服务器的可用状态为“不可用”,则通知所述调度失败次数比较模块判断所述被调度服务器的已调度失败次数是否达到了阈值,如果所述已调度失败次数达到了所述阈值,则通知所述服务器状态更改模块将所述被调度服务器的可用状态设置为“可用”,同时通知所述调度失败次数设置模块将所述被调度服务器的已调度失败次数设置为0,并尝试调用所述被调度服务器上的服务,如果调度成功则返回,如果调度失败则通知所述服务器选择模块重新进行被调度服务器的选择。

    在上面所公开的方案中,优选地,所述配置信息用于存储所有服务器的基准个数和正常个数,并且当所述被调用服务器上的被调用服务启动时将所述正常个数加1,当所述被调用服务器上的被调用服务停止时将所述正常个数减1。

    在上面所公开的方案中,可选地,所述预定的服务器选择算法为循环复用算法,所述循环复用算法依次轮询每个服务器。

    在上面所公开的方案中,可选地,所述预定的服务器选择算法为随机选择算法,所述随机选择算法根据随机函数产生的随机数选择服务器。

    在上面所公开的方案中,可选地,所述预定的服务器选择算法为加权选择算法,所述加权选择算法根据每个服务器的使用策略选择服务器。

    在上面所公开的方案中,优选地,所述阈值是用户预先定义的,并存储在所述配置信息存储模块中。

    本发明所公开的多服务器自适应任务调度方法和装置具有如下优点:调度服务通过对各个服务器状态的维护而实现真正的负载均衡(即包括调度服务所在的服务器的负载均衡),并可使故障服务器自动隔离,且当故障服务器恢复后又能主动恢复调用。

    附图说明

    结合附图,本发明的技术特征以及优点将会被本领域技术人员更好地理解,其中:

    图1为根据本发明的实施例的多服务器自适应任务调度方法的流程图;

    图2为根据本发明的实施例的多服务器自适应任务调度装置的结构图;

    具体实施方式

    图1为根据本发明的实施例的多服务器自适应任务调度方法的流程图。如图1所示,本发明所公开的多服务器自适应任务调度方法包括如下步骤:(A1)启动调度服务所在的服务器,并读取配置信息;(A2)根据所述配置信息以及预定的服务器选择算法选择被调度服务器;(A3)当被调度服务器被确定后,判断所述被调度服务器的可用状态;(A4)如果所述被调度服务器的可用状态为“可用”,则开始调用所述被调度服务器上的服务;(A5)如果调用失败,则将所述被调度服务器的可用状态设置为“不可用”,并将所述被调度服务器的已调度失败次数加1,然后根据配置信息重新选择被调度服务器,或者丢弃所述调用请求后返回;(A6)如果所述被调度服务器的可用状态为“不可用”,则判断所述被调度服务器的已调度失败次数是否达到了阈值,如果所述已调度失败次数达到了所述阈值,则将所述被调度服务器的可用状态设置为“可用”,同时将所述被调度服务器的已调度失败次数设置为0,并尝试调用所述被调度服务器上的服务;(A7)如果调度成功则返回,如果调度失败则返回步骤(A5)。

    其中,所述配置信息以文件或数据库的方式存在,用于存储所有服务器的基准个数和正常个数。基准个数是指部署有被调用服务的所有服务器的总个数,而正常个数是指可用状态为“可用”的所有服务器的总个数。并且,当服务器上的被调用服务启动时将所述正常个数加1,当服务器上的被调用服务停止时将所述正常个数减1。此外,调度服务所在的主机启动调度服务时,所述调度服务读取配置信息并且在进程内维护一个结构体数组,用于记录所述基准个数和正常个数以及各服务器的可用状态和已调度失败次数。

    如图1所示,本发明所公开的多服务器自适应任务调度方法的步骤(A2)中的预定服务器选择算法为循环复用算法,即依次轮询每个服务器。可选地,所述预定服务器选择算法可以是用户自定义的任何其他选择算法,例如,所述预定服务器选择算法可以是随机选择算法,即根据随机函数产生的随机数而选择服务器,或加权选择算法,即根据每个服务器的使用策略而选择服务器。

    如图1所示,本发明所公开的多服务器自适应任务调度方法的步骤(A6)中的阈值是用户预先定义的,并存储在配置信息中。

    图2为根据本发明的实施例的多服务器自适应任务调度装置的结构图。如图2所示,本发明所公开的多服务器自适应任务调度装置包括配置信息存储模块1、初始化模块2、服务器选择模块3、服务器调度模块4、调度失败次数设置模块5、调度失败次数比较模块6和服务器状态更改模块7。其中,所述配置信息存储模块1与初始化模块2相连接,用于存储配置信息。所述初始化模块2与服务器选择模块3相连接,用于启动调度服务所在的服务器,并从配置信息存储模块1处读取配置信息,并将读取到的配置信息发送到服务器选择模块3,同时,将配置信息中的已调度失败次数阈值发送到调度失败次数比较模块6。所述服务器选择模块3与服务器调度模块4相连接,用于根据所接收到的配置信息以及预定的服务器选择算法选择被调度服务器,并将选择结果发送给服务器调度模块4。所述服务器调度模块4分别与调度失败次数设置模块5、调度失败次数比较模块6和服务器状态更改模块7相连接,服务器调度模块4接收调度请求并在接收到被调度服务器选择结果后,判断被选择的被调度服务器的可用状态,如果所述被调度服务器的可用状态为“可用”,则开始调用所述被调度服务器上的服务,如果调用失败,则通知服务器状态更改模块7将所述被调度服务器的可用状态设置为“不可用”,并通知调度失败次数设置模块5将所述被调度服务器的已调度失败次数加1,然后根据配置信息重新选择被调度服务器,或者丢弃所述调用请求后返回;如果所述被调度服务器的可用状态为“不可用”,则通知调度失败次数比较模块6判断所述被调度服务器的已调度失败次数是否达到了阈值,如果所述已调度失败次数达到了所述阈值,则通知服务器状态更改模块7将所述被调度服务器的可用状态设置为“可用”,同时通知调度失败次数设置模块5将所述被调度服务器的已调度失败次数设置为0,并尝试调用所述被调度服务器上的服务,如果调度成功则返回,如果调度失败则通知服务器选择模块3重新进行被调度服务器的选择。所述调度失败次数设置模块5与服务器调度模块4相连接,用于接收服务器调度模块4的通知而设置指定服务器的调度失败次数,并将设置结果返回给服务器调度模块4。所述调度失败次数比较模块6与服务器调度模块4相连接,用于接收服务器调度模块4的通知而将指定服务器的调度失败次数与预定的阈值相比较,并将比较结果返回给服务器调度模块4。所述服务器状态更改模块7与服务器调度模块4相连接,用于接收服务器调度模块4的通知而更改指定服务器的状态信息,并将更改结果返回给服务器调度模块4。

    其中,所述配置信息用于存储所有服务器的基准个数和正常个数。基准个数是指部署有被调用服务的所有服务器的总个数,而正常个数是指可用状态为“可用”的所有服务器的总个数。并且,当服务器上的被调用服务启动时将所述正常个数加1,当服务器上的被调用服务停止时将所述正常个数减1。

    如图2所示,本发明所公开的多服务器自适应任务调度装置中的预定服务器选择算法为循环复用算法,即依次轮询每个服务器。可选地,所述预定服务器选择算法可以是用户自定义的任何其他选择算法,例如,所述预定服务器选择算法可以是随机选择算法,即根据随机函数产生的随机数而选择服务器,或加权选择算法,即根据每个服务器的使用策略而选择服务器。

    如图2所示,本发明所公开的多服务器自适应任务调度装置中的阈值是用户预先定义的,并存储在配置信息中。

    尽管本发明是通过上述的优选实施方式进行描述的,但是其实现形式并不局限于上述的实施方式。应该认识到:在不脱离本发明主旨和范围的情况下,本领域技术人员可以对本发明做出不同的变化和修改。

    关 键  词:
    服务器 自适应 任务 调度 方法 装置
      专利查询网所有文档均是用户自行上传分享,仅供网友学习交流,未经上传用户书面授权,请勿作他用。
    0条评论

    还可以输入200字符

    暂无评论,赶快抢占沙发吧。

    关于本文
    本文标题:多服务器自适应任务调度方法及装置.pdf
    链接地址:https://www.zhuanlichaxun.net/p-1093872.html
    关于我们 - 网站声明 - 网站地图 - 资源地图 - 友情链接 - 网站客服 - 联系我们

    copyright@ 2017-2018 zhuanlichaxun.net网站版权所有
    经营许可证编号:粤ICP备2021068784号-1