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

文档序号:7715922阅读:168来源:国知局
专利名称:多服务器自适应任务调度方法及装置的制作方法
技术领域
本发明涉及任务调度方法及装置,更具体地,涉及多服务器自适应任务调度方法 及装置。
背景技术
目前,随着网络应用的日益广泛,服务器系统的数据流量成倍增加,从而传统类型 的服务器系统的数据处理能力受到极大挑战。因此,为了解决上述问题,如下两种方式被广泛使用(1)进行硬件升级,购买配 置更高、性能更好的服务器,此方法简单易行,然而成本过高并会导致现有资源的浪费,且 下一次业务量提升时还会面临同样的问题;(2)采用集群技术,即利用两台以上的服务器 进行协同工作,该方案具有高的可靠性和强大灵活的系统扩充能力。然而,当两台以上的服务器进行协同工作时必然涉及负载均衡问题,即多服务器 间的任务调度。目前常用的多服务器任务调度方式为使用中间件技术。但是,该方式具有 如下缺点购买、配置和管理成本高,并且调度服务所在的主机(即服务器)必须独立于被 调度服务所在的所有主机,因为如果调度服务所在的主机上存在被调度服务,而其他主机 上也存在被调度服务时,即使通过现有中间件产品的负载均衡参数进行控制,一旦调度请 求发出,则调度服务所在的主机只要有丝毫空闲资源,就会优先调度本机服务,即不能实现 真正的负载均衡,并且不能做到诸如循环复用、随机选择、加权选择等多样化的需求。

发明内容
为了解决上述现有技术方案所存在的缺陷,本发明提出了一种可以以自适应方式 在多服务器间进行任务调度的方法及装置。本发明的目的是通过以下技术方案实现的—种多服务器自适应任务调度方法,所述方法包括如下步骤(Al)启动调度服务所在的服务器,接收调用请求并读取配置信息;(A2)根据所述配置信息以及预定的服务器选择算法选择被调度服务器;(A3)当被调度服务器被确定后,判断所述被调度服务器的可用状态;(A4)如果所述被调度服务器的可用状态为“可用”,则开始调用所述被调度服务器 上的服务;(A5)如果调用失败,则将所述被调度服务器的可用状态设置为“不可用”,并将所 述被调度服务器的已调度失败次数加1,然后根据所述配置信息重新选择被调度服务器,或 者丢弃所述调用请求后返回;(A6)如果所述被调度服务器的可用状态为“不可用”,则判断所述被调度服务器的 已调度失败次数是否达到了阈值,如果所述已调度失败次数达到了所述阈值,则将所述被 调度服务器的可用状态设置为“可用”,同时将所述被调度服务器的已调度失败次数设置为 0,并尝试调用所述被调度服务器上的服务;
(A7)如果调度成功则返回,如果调度失败则返回步骤(A5)。在上面所公开的方案中,优选地,所述配置信息以文件或数据库的方式存在,用于 存储所有服务器的基准个数和正常个数,并且当所述被调用服务器上的被调用服务启动时 将所述正常个数加1,当所述被调用服务器上的被调用服务停止时将所述正常个数减1。在上面所公开的方案中,可选地,所述预定的服务器选择算法为循环复用算法,所 述循环复用算法依次轮询每个服务器。在上面所公开的方案中,可选地,所述预定的服务器选择算法为随机选择算法,所 述随机选择算法根据随机函数产生的随机数选择服务器。在上面所公开的方案中,可选地,所述预定的服务器选择算法为加权选择算法,所 述加权选择算法根据每个服务器的使用策略选择服务器。在上面所公开的方案中,优选地,所述阈值是用户预先定义的,并存储在所述配置 信息中。本发明的目的还可以通过以下技术方案实现 一种多服务器自适应任务调度装置,所述多服务器自适应任务调度装置包括配置 信息存储模块、初始化模块、服务器选择模块、服务器调度模块、调度失败次数设置模块、调 度失败次数比较模块和服务器状态更改模块;其中,所述配置信息存储模块与所述初始化模块相连接,用于存储配置信息;所述初始化模块与所述服务器选择模块相连接,用于启动调度服务所在的服务 器,并从所述配置信息存储模块处读取所述配置信息,并将读取到的所述配置信息发送到 所述服务器选择模块,同时,将所述配置信息中的调度失败次数阈值发送到所述调度失败 次数比较模块;所述服务器选择模块与所述服务器调度模块相连接,用于根据接收到的所述配置 信息以及预定的服务器选择算法选择被调度服务器,并将选择结果发送给所述服务器调度 模块;所述服务器调度模块分别与所述调度失败次数设置模块、所述调度失败次数比较 模块和所述服务器状态更改模块相连接,所述服务器调度模块接收调度请求并在接收到被 调度服务器选择结果后,判断被选择的被调度服务器的可用状态,并根据判断结果对所述 被调度服务器进行调度;所述调度失败次数设置模块与所述服务器调度模块相连接,用于接收所述服务器 调度模块的通知而设置指定服务器的调度失败次数,并将设置结果返回给所述服务器调度 模块;所述调度失败次数比较模块与所述服务器调度模块相连接,用于接收所述服务器 调度模块的通知而将指定服务器的调度失败次数与预定的阈值相比较,并将比较结果返回 给所述服务器调度模块;所述服务器状态更改模块与所述服务器调度模块相连接,用于接收所述服务器调 度模块的通知而更改指定服务器的状态信息,并将更改结果返回给所述服务器调度模块。在上面所公开的方案中,优选地,所述服务器调度模块的调度过程如下如果所述被调度服务器的可用状态为“可用”,则开始调用所述被调度服务器上的 服务,如果调用失败,则通知所述服务器状态更改模块将所述被调度服务器的可用状态设置为“不可用”,并通知调度失败次数设置模块将所述被调度服务器的已调度失败次数加1, 然后根据所述配置信息重新选择被调度服务器,或者丢弃所述调用请求后返回;如果所述被调度服务器的可用状态为“不可用”,则通知所述调度失败次数比较 模块判断所述被调度服务器的已调度失败次数是否达到了阈值,如果所述已调度失败次数 达到了所述阈值,则通知所述服务器状态更改模块将所述被调度服务器的可用状态设置为 “可用”,同时通知所述调度失败次数设置模块将所述被调度服务器的已调度失败次数设置 为0,并尝试调用所述被调度服务器上的服务,如果调度成功则返回,如果调度失败则通知 所述服务器选择模块重新进行被调度服务器的选择。在上面所公开的方案中,优选地,所述配置信息用于存储所有服务器的基准个数 和正常个数,并且当所述被调用服务器上的被调用服务启动时将所述正常个数加1,当所述 被调用服务器上的被调用服务停止时将所述正常个数减1。在上面所公开的方案中,可选地,所述预定的服务器选择算法为循环复用算法,所 述循环复用算法依次轮询每个服务器。在上面所公开的方案中,可选地,所述预定的服务器选择算法为随机选择算法,所 述随机选择算法根据随机函数产生的随机数选择服务器。在上面所公开的方案中,可选地,所述预定的服务器选择算法为加权选择算法,所 述加权选择算法根据每个服务器的使用策略选择服务器。在上面所公开的方案中,优选地,所述阈值是用户预先定义的,并存储在所述配置 信息存储模块中。本发明所公开的多服务器自适应任务调度方法和装置具有如下优点调度服务通 过对各个服务器状态的维护而实现真正的负载均衡(即包括调度服务所在的服务器的负 载均衡),并可使故障服务器自动隔离,且当故障服务器恢复后又能主动恢复调用。


结合附图,本发明的技术特征以及优点将会被本领域技术人员更好地理解,其 中图1为根据本发明的实施例的多服务器自适应任务调度方法的流程图;图2为根据本发明的实施例的多服务器自适应任务调度装置的结构具体实施例方式图1为根据本发明的实施例的多服务器自适应任务调度方法的流程图。如图1所 示,本发明所公开的多服务器自适应任务调度方法包括如下步骤=(Al)启动调度服务所在 的服务器,并读取配置信息;(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所示,本发明所公开的多服务器自适应任务调度装置中的阈值是用户预先 定义的,并存储在配置信息中。尽管本发明是通过上述的优选实施方式进行描述的,但是其实现形式并不局限于 上述的实施方式。应该认识到在不脱离本发明主旨和范围的情况下,本领域技术人员可以 对本发明做出不同的变化和修改。
权利要求
1.一种多服务器自适应任务调度方法,所述方法包括如下步骤(Al)启动调度服务所在的服务器,接收调用请求并读取配置信息;(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所述的多服务器自适应任务调度装置,其特征在于,所述阈值 是用户预先定义的,并存储在所述配置信息存储模块中。
全文摘要
本发明提出了一种多服务器自适应任务调度方法和装置。其中,所述多服务器自适应任务调度方法包括如下步骤启动调度服务所在的服务器,接收调用请求并读取配置信息;根据所述配置信息以及预定的服务器选择算法选择被调度服务器;当被调度服务器被确定后,判断所述被调度服务器的可用状态,并根据判断结果对选择出的被调度服务器进行调度;如果调度成功则返回,如果调度失败则重新选择被调度服务器并进行后续处理。
文档编号H04L12/56GK102006314SQ20091019502
公开日2011年4月6日 申请日期2009年9月2日 优先权日2009年9月2日
发明者陈林, 马东良 申请人:中国银联股份有限公司
网友询问留言 已有0条留言
  • 还没有人留言评论。精彩留言会获得点赞!
1