节点调度、切换与协调方法及其相应的装置、设备、介质与流程

文档序号:23726697发布日期:2021-01-26 17:20阅读:75来源:国知局
节点调度、切换与协调方法及其相应的装置、设备、介质与流程

[0001]
本申请涉及计算机网络领域,尤其涉及一种节点调度、切换与协调方法,以及涉及该些方法相应的装置、设备与非易失性存储介质。


背景技术:

[0002]
各大互联网公司的系统规模日益发展,与业务相关的任务数量日益增多,且变得越来越复杂,尤其是在分布式环境下,存在多个业务系统时,每个业务系统都有处理任务的需求,因此需要有一个任务平台各个业务系统的任务进行统一管理调度,即分布式任务调度系统,以便及时响应各类型业务系统的大量任务处理请求,满足相应的业务的任务处理需求。
[0003]
目前大部分的分布式调度任务系统的执行逻辑大致为:首先通过调度中心配置一个唯一的调度节点,由调度节点分配任务到执行节点,以便相应的执行节点执行分配到的任务;其次对于任务的执行,由多个任务执行节点周期性的扫描任务配置记录,以抢占未被执行的任务并执行。按照这一执行逻辑,至少存在如下缺陷:
[0004]
首先,现有技术中所采用的以调度中心配置调度节点的方式,即使调度中心采用高可用方案,因其只存在单一的调度中心的结构,即只有一个提供调度服务的调度中心节点存在,假如该调度中心节点出现宕机之类的故障,系统会出现一段时间的不可用,需要较长时间才能恢复为可用状态,导致大量的任务无法被执行,造成各类型业务无法提供给用户使用。
[0005]
其次,现有技术中的任务执行相关的处理方式,因其未考虑执行节点的可用性,而直接无条件由多个执行节点抢占同一任务,因此既容易造成任务冲突,导致多个执行节点重复执行同一任务,且因不同执行节点的任务负载不均衡,实际上无法合理高效地实现更大处理效率。
[0006]
针对以上关于分布式任务调度系统所普遍面临的问题,亟待提供一些有效的解决方案。


技术实现要素:

[0007]
本申请的首要目的在于提供一种节点调度方法及其相应的装置、电子设备、非易失性存储介质。
[0008]
本申请的第二目的,适应首要目的而提供一种节点切换方法及其相应的装置、电子设备、非易失性存储介质。
[0009]
本申请的第三目的,适应首要目的而提供一种节点协调方法及其相应的装置、电子设备、非易失性存储介质。
[0010]
为满足本申请的各个目的,本申请采用如下技术方案:
[0011]
适应本申请的首要目的而提供的一种节点调度方法,其包括如下步骤:
[0012]
响应于节点查询请求,获取其中指定的任务类型,从节点数据库中查询确定与该
任务类型相应的服务节点的访问入口,作为对该请求的反馈,每个服务节点用于为其对应的类型的任务调度具体执行节点;
[0013]
当节点数据库中查询不到与所述任务类型相对应的服务节点期间,响应任意所述执行节点的角色切换指令,将该执行节点的访问入口与该任务类型关联存储为所述节点数据库的数据记录,以使该执行节点升级为所述的服务节点;
[0014]
监控任意所述服务节点的连接状态,当任意服务节点断开连接后,从节点数据库中清除与该服务节点相对应的数据记录。
[0015]
进一步的实施例中,所述节点查询请求来源于所述执行节点,且当无服务节点反馈时,该执行节点对应发出所述角色切换指令。
[0016]
较佳的实施例中,所述节点查询请求来源于任务代理节点,所反馈的服务节点为该代理节点调度所述任务的任务操作请求。
[0017]
部分的实施例中,所述节点数据库中包括多个不同服务节点的数据记录,每一服务节点与一种任务类型相对应,同一时间内,一种任务类型仅有一个服务节点与之相对应。
[0018]
进一步的实施例中,本方法各步骤之间并发执行。
[0019]
适用本申请的第二目的而提供的一种节点切换方法,其包括如下步骤:
[0020]
发起节点查询请求,向节点数据库查询当前节点预设的任务类型相匹配的服务节点,获取相应的反馈结果;
[0021]
当所述反馈结果指示节点数据库中不存在相应的服务节点的数据记录时,发起角色切换指令,以将当前节点的访问入口与其预设的任务类型关联存储于所述节点数据库中以备查询,以将当前节点升级为所述的服务节点;
[0022]
在当前节点升级为服务节点之后,接收所述任务类型相对应的任务操作请求,将其添加到任务池中供执行节点抢占处理;
[0023]
当所述反馈结果包含相匹配的服务节点的访问入口时,保持当前节点作为所述的执行节点用于处理所述预设的任务类型的任务操作请求。
[0024]
进一步的实施例中,当前节点以服务节点的角色执行如下步骤:
[0025]
接收代理节点发送的符合预设任务类型的任务操作请求,将其添加到任务池中;
[0026]
根据与该预设任务类型相匹配的执行节点上报的负载均衡信息,选出用于处理该任务操作请求的部分执行节点;
[0027]
向所述部分执行节点发送通知处理所述任务操作请求的任务消息;
[0028]
由所述部分执行节点中最先响应者实施对所述任务操作请求的抢占处理。
[0029]
进一步的实施例中,当前节点以服务节点的角色执行如下步骤:
[0030]
持续向与自身预设的任务类型相匹配的服务节点上传自身的负载均衡信息;
[0031]
当接收到所述服务节点发送的通知处理任务操作请求的任务消息时,从所述任务池中抢占至少一个任务操作请求;
[0032]
对成功抢占的任务操作请求实施任务处理。
[0033]
适用本申请的第三目的而提供的一种节点协调方法,其包括如下步骤:
[0034]
适应多个任务类型,每一任务类型的多个服务节点竞争服务于该类型的任务的调度权,确定获得调度权者为该类型的服务节点,用于为该类型的任务调度具体执行节点;
[0035]
被确定出的每个服务节点根据多个在任务类型上与其相关联的执行节点上报的
负载均衡信息,为代理节点请求处理的任务优选出部分执行节点;
[0036]
被确定出的服务节点向所述部分执行节点发送关于请求处理的任务的任务消息;
[0037]
被确定出的服务节点将请求处理的任务调度给所述部分执行节点中竞争所述被请求处理的任务的执行权的胜出者实施任务处理。
[0038]
适应本申请的首要目的而提出的一种节点调度装置,其包括:
[0039]
请求响应单元,用于响应于节点查询请求,获取其中指定的任务类型,从节点数据库中查询确定与该任务类型相应的服务节点的访问入口,作为对该请求的反馈,每个服务节点用于为其对应的类型的任务调度具体执行节点;
[0040]
指令响应单元,用于当节点数据库中查询不到与所述任务类型相对应的服务节点期间,响应任意所述执行节点的角色切换指令,将该执行节点的访问入口与该任务类型关联存储为所述节点数据库的数据记录,以使该执行节点升级为所述的服务节点;
[0041]
节点监控单元,用于监控任意所述服务节点的连接状态,当任意服务节点断开连接后,从节点数据库中清除与该服务节点相对应的数据记录。
[0042]
适应本申请的第二目的而提出的一种节点切换装置,其包括:
[0043]
请求发起单元,用于发起节点查询请求,向节点数据库查询当前节点预设的任务类型相匹配的服务节点,获取相应的反馈结果;
[0044]
指令发起单元,用于当所述反馈结果指示节的服务节点的访问入口时,保持当前节点作为所述的执行节点用于处理所述预设的点数据库中不存在相应的服务节点的数据记录时,发起角色切换指令,以将当前节点的访问入口与其预设的任务类型关联存储于所述节点数据库中以备查询,以将当前节点升级为所述的服务节点;
[0045]
请求添加单元,用于在当前节点升级为服务节点之后,接收所述任务类型相对应的任务操作请求,将其添加到任务池中供执行节点抢占处理;
[0046]
反馈确定单元,用于当所述反馈结果包含相匹配的服务节点的访问入口时,保持当前节点作为所述的执行节点用于处理所述预设的任务类型的任务操作请求。
[0047]
适应本申请的第三目的而提出的一种节点协调装置,其包括:
[0048]
节点确定单元,用于适应多个任务类型,每一任务类型的多个服务节点竞争服务于该任务类型的任务的调度权,对应确定一个用于为其对应的类型的任务调度具体执行节点的服务节点;
[0049]
节点筛选单元,用于被确定出的每个服务节点根据多个在任务类型上与其相关联的执行节点上报的负载均衡信息,为代理节点请求处理的任务优选出部分执行节点;
[0050]
任务发起单元,用于被确定出的服务节点向所述部分执行节点发送关于请求处理的任务的任务消息;
[0051]
任务调度单元,用于被确定出的服务节点将请求处理的任务调度给所述部分执行节点中竞争所述被请求处理的任务的执行权的胜出者实施任务处理。
[0052]
适应本申请的又一目的而提供的一种电子设备,包括中央处理器和存储器,所述中央处理器用于调用运行存储于所述存储器中的计算机程序以执行本申请所述的节点调度方法、所述的节点切换方法或者所述的节点协调方法的步骤。
[0053]
适应本申请的再一目的而提供的一种非易失性存储介质,其存储有依据所述的节点调度方法、所述的节点切换方法或者所述的节点协调方法所实现的计算机程序,该计算
机程序被计算机调用运行时,执行相应的方法所包括的步骤。
[0054]
相对于现有技术,本申请的优势如下:
[0055]
首先,本申请存允许任务按照不同类型进行归类处理,适应不同任务类型而配备多个服务节点,每个服务节点均起到调度中心的作用,负责调度相应的执行节点用于处理相应类型的任务,其中,服务节点与执行节点配备统一的运行逻辑,当这一逻辑在某一服务器运行时,使得服务器具备向节点数据库中首先写入自身信息而抢占成为某一类型任务的调度中心的能力,即成为所述的服务节点,而当节点数据库中已经存在相应的任务类型的服务节点即调度中心时,(节点)服务器又能够使自身以执行节点进行工作,并负责接受该类型相应的服务节点的调度而配合处理相应类型的任务。可见,通过适用这一原理,部署多台所述的服务器,借助节点数据库进行统一管理,便可实现多调度中心的分布式任务调度系统,相比较不分任务类型的单一中心的分布式任务调度系统来说,具有较强的适应性,即便服务于某种任务类型的服务节点宕机,也只会短时间内影响该服务节点相应的任务调度,很快其他服务器便会从执行节点的角色切换成为服务节点的角色替换之,快速修复当前故障,容灾能力强,不会造成整个调度系统的崩溃。
[0056]
其次,本申请利用同一套运行逻辑在同一服务器上的运行实现了角色自动切换机制,当节点数据库响应执行节点的节点查询请求,在数据库中查询不到该节点查询请求对应的服务节点时,将会响应由所述执行节点发送的角色切换指令,以便将该执行节点切换为服务节点,通过这一原理,使同一服务器拥有两种工作模式,即一个节点服务器既可负责执行节点的工作,也可负责服务节点的工作,使得节点服务器拥有机动性,可灵活自动切换工作模式,可提高调度系统的部署和维护效率。
[0057]
此外,本申请在确定各个任务类型的服务节点时,借助节点数据库对各任务类型的服务节点进行记录,允许任意节点服务器通过向节点数据库中写入自身愿意工作于服务节点的角色切换指令,再根据先来先得的原则允许其指令最先被响应的节点服务器成为相应的调度中心,由此而实现了一种竞争机制,这一竞争机制的适用,使得同一任务类型下的每台节点服务器均可在需要时转换为服务节点,即成为调度中心,因此,对于以本申请的方案部署的整个分布式任务调度系统而言,由于给予了各个节点服务器公平的竞争机会,需求较为迫切的节点服务器更易获得调度权,因此也就兼顾提升了调度系统本身在内部自我协调时的时间效率。
附图说明
[0058]
本申请上述的和/或附加的方面和优点从下面结合附图对实施例的描述中将变得明显和容易理解,其中:
[0059]
图1为实施本申请的技术方案在网络环境中部署所呈现的示意图;
[0060]
图2为实施本申请的技术方案所构成的多中心的分布式任务调度系统的系统原理示意图;
[0061]
图3为本申请的节点调度方法的典型实施例的流程示意图;
[0062]
图4为本申请的节点调度装置的典型实施例的原理框图;
[0063]
图5为本申请的节点切换方法的典型实施例的流程示意图;
[0064]
图6为本申请的节点切换方法的另一实施例的流程示意图;
[0065]
图7为本申请的节点切换方法的再一实施例的流程示意图;
[0066]
图8为本申请的节点切换装置的典型实施例的原理框图;
[0067]
图9为本申请的节点协调方法的典型实施例的流程示意图;
[0068]
图10为本申请的节点协调装置的典型实施例的原理框图。
具体实施方式
[0069]
下面详细描述本申请的实施例,所述实施例的示例在附图中示出,其中自始至终相同或类似的标号表示相同或类似的元件或具有相同或类似功能的元件。下面通过参考附图描述的实施例是示例性的,仅用于解释本申请,而不能解释为对本申请的限制。
[0070]
本技术领域技术人员可以理解,除非特意声明,这里使用的单数形式“一”、“一个”、“所述”和“该”也可包括复数形式。应该进一步理解的是,本申请的说明书中使用的措辞“包括”是指存在所述特征、整数、步骤、操作、元件和/或组件,但是并不排除存在或添加一个或多个其他特征、整数、步骤、操作、元件、组件和/或它们的组。应该理解,当我们称元件被“连接”或“耦接”到另一元件时,它可以直接连接或耦接到其他元件,或者也可以存在中间元件。此外,这里使用的“连接”或“耦接”可以包括无线连接或无线耦接。这里使用的措辞“和/或”包括一个或更多个相关联的列出项的全部或任一单元和全部组合。
[0071]
本技术领域技术人员可以理解,除非另外定义,这里使用的所有术语(包括技术术语和科学术语),具有与本申请所属领域中的普通技术人员的一般理解相同的意义。还应该理解的是,诸如通用字典中定义的那些术语,应该被理解为具有与现有技术的上下文中的意义一致的意义,并且除非像这里一样被特定定义,否则不会用理想化或过于正式的含义来解释。
[0072]
本技术领域技术人员可以理解,这里所使用的“客户端”、“终端”、“终端设备”既包括无线信号接收器的设备,其仅具备无发射能力的无线信号接收器的设备,又包括接收和发射硬件的设备,其具有能够在双向通信链路上,进行双向通信的接收和发射硬件的设备。这种设备可以包括:蜂窝或其他诸如个人计算机、平板电脑之类的通信设备,其具有单线路显示器或多线路显示器或没有多线路显示器的蜂窝或其他通信设备;pcs(personal communications service,个人通信系统),其可以组合语音、数据处理、传真和/或数据通信能力;pda(personal digital assistant,个人数字助理),其可以包括射频接收器、寻呼机、互联网/内联网访问、网络浏览器、记事本、日历和/或gps(global positioning system,全球定位系统)接收器;常规膝上型和/或掌上型计算机或其他设备,其具有和/或包括射频接收器的常规膝上型和/或掌上型计算机或其他设备。这里所使用的“客户端”、“终端”、“终端设备”可以是便携式、可运输、安装在交通工具(航空、海运和/或陆地)中的,或者适合于和/或配置为在本地运行,和/或以分布形式,运行在地球和/或空间的任何其他位置运行。这里所使用的“客户端”、“终端”、“终端设备”还可以是通信终端、上网终端、音乐/视频播放终端,例如可以是pda、mid(mobile internet device,移动互联网设备)和/或具有音乐/视频播放功能的移动电话,也可以是智能电视、机顶盒等设备。
[0073]
本申请所称的“服务器”、“客户端”、“服务节点”等名称所指向的硬件,本质上是具备个人计算机等效能力的电子设备,为具有中央处理器(包括运算器和控制器)、存储器、输入设备以及输出设备等冯诺依曼原理所揭示的必要构件的硬件装置,计算机程序存储于其
存储器中,中央处理器将存储在外存中的程序调入内存中运行,执行程序中的指令,与输入输出设备交互,借此完成特定的功能。
[0074]
需要指出的是,本申请所称的“服务器”这一概念,同理也可扩展到适用于服务器机群的情况。依据本领域技术人员所理解的网络部署原理,所述各服务器应是逻辑上的划分,在物理空间上,这些服务器既可以是互相独立但可通过接口调用的,也可以是集成到一台物理计算机或一套计算机机群的。本领域技术人员应当理解这一变通,而不应以此约束本申请的网络部署方式的实施方式。
[0075]
请参阅图1,本申请相关技术方案实施时所需的硬件基础可参阅图中所示的架构进行部署。本申请所述的服务节点80、代理节点81及执行节点82均部署在云端,其中服务节点80专用于接收代理节点发送任务操作请求及接收执行节点上报的负载均衡信息等其他交互。每一节点80、81及82均可以充当应用服务器而进一步连接起其他诸如存储服务器、备份服务器,以便与节点数据库交互,以此构成逻辑上相关联的服务机群。服务节点80、代理节点81以及执行节点82均可通过公知的网络接入方式接入互联网,彼此之间可建立数据通信链路,以便实现各种数据交换。
[0076]
请参阅图2,实施了本申请的相关技术方案所构建的多中心的分布式任务调度系统的系统结构如图所示,其系统由节点数据库a、执行节点b、服务节点c及代理节点d组成。所述的节点数据库a为本系统的第一层,所述的执行节点b、服务节点c及代理节点位于本系统的第二层,终端设备d位于本系统的第三层。位于第一层的节点数据库将为第二层的所有设备提供相应的服务,例如为执行节点b及代理节点d提供查询服务节点的服务、为执行节点b提供角色切换服务,并实时监控服务节点c的连接状态,以实时更新其库中的数据记录。位于第二层的各个设备彼此之间建立数据通信链路,以为彼此提供相应的服务,例如,执行节点b可向服务节点c发送其自身的负载均衡信息,以便服务节点c向其发送由代理节点d发送的任务操作请求,且执行节点b在完成该任务操作请求后,可向代理节点d反馈相应的结果。第三层的终端设备e与代理节点d建立数据通信链路,以便通过代理节点d,将其需处理的任务上传至本申请的多中心的分布式任务调度系统中进行处理,且代理节点d可将该任务的执行结果反馈给终端设备e。需要注意的是,当执行节点b通过角色切换指令切换为服务节点时,其执行逻辑可参考服务节点c的执行逻辑,其与其他设备相互之间的交互大致相同。本示意图只体现了各设备单一存在的情况,当本系统实际部署时,将存在多个图2中的执行节点b、服务节点c、代理节点d及终端设备e,且节点数据库a也不一定是存在于单一的服务器中,也可分布式存储,或者多端互为备份实时同步,只要其可为相应的设备提供服务即可,本领域技术人员可灵活设计,只要本系统能按照本申请所实施的方法进行运行即可。
[0077]
本申请的终端设备配备有相关操作系统,例如ios、hms(鸿蒙)、android以及其他提供同等功能的操作系统,在此类操作系统的支持下,服务器与终端设备之间可以通过彼此约定的通信链路进行数据通信,而为这些操作系统适应性开发的应用程序也得以在终端设备中正常运行,通过终端设备实现人机交互以及远程交互。
[0078]
本申请的应用程序,其通称意义是指运行于服务器或终端设备之类的电子设备的应用程序,这些应用程序采用编程的方式实现了本申请的相关技术方案,其程序代码可被以计算机可执行指令的形式保存于计算机能识别的非易失性存储介质中,并被中央处理器调入内存中运行,通过该应用程序在计算机的运行而构造出本申请的相关装置。
[0079]
本领域技术人员对此应当知晓:本申请的各种方法,虽然基于相同的概念而进行描述而使其彼此间呈现共通性,但是,除非特别说明,否则这些方法都是可以独立执行的。同理,对于本申请所揭示的各个实施例而言,均基于同一发明构思而提出,因此,对于相同表述的概念,以及尽管概念表述不同但仅是为了方便而适当变换的概念,应被等同理解。
[0080]
请参阅图3,本申请的一种节点调度方法,由搭载节点数据库的服务器的应用程序负责执行体现,在其典型实施例中,其包括如下步骤:
[0081]
步骤s11,响应于节点查询请求,获取其中指定的任务类型,从节点数据库中查询确定与该任务类型相应的服务节点的访问入口,作为对该请求的反馈,每个服务节点用于为其对应的类型的任务调度具体执行节点:
[0082]
所述的节点数据库,是指储存与服务节点的信息有关的数据记录的数据库,以便响应所述节点查询请求,获取该请求中所指定的任务类型,并查询该任务类型相应的服务节点,发送该服务节点的访问入口至相应的执行节点或代理节点作为所述节点查询请求的反馈,完成为执行节点或代理节点调度相应服务节点的操作。
[0083]
所述的节点查询请求,由执行节点或代理节点发送至所述节点数据库中,以便节点数据库根据节点查询请求所指定的任务类型,查询与该任务类型相对应的服务节点,若对应任务类型的服务节点存在时,所述节点数据库将该服务节点的访问入口相应发送至所述执行节点或代理节点,以便该执行节点或代理节点访问该服务节点,进行任务调度。若节点数据库中对应任务类型的服务节点的数据记录不存在,所述节点数据库将会向所述执行节点发送相应的反馈结果,以便该执行节点据此向其发送角色切换指令。
[0084]
所述的节点数据库,是指用于存放多个不同服务节点相关的数据记录的数据库,其部署于相应的服务器中,为确定多种任务类型的任务与其服务节点之间的对应关系提供数据服务,以便执行节点或代理节点通过节点查询请求在所述节点数据库中查询相应的服务节点;所述节点数据库储存的每一服务节点只能为其对应的任务类型进行调度,且同一时间内,一种任务类型仅存在一个服务节点与之相对应,以便控制节点数据库向代理节点的反馈中只包含一个相应的服务节点的访问入口,防止代理节点向多个服务节点发送任务操作请求,导致代理节点需处理的任务被反复处理。
[0085]
所述的数据记录,是指节点数据库储存相关服务节点信息的数据,其包含服务节点的访问入口、调度任务类型等服务节点自身配置信息,以便节点数据库通过其储存的数据记录,确定处理对应任务类型调度的服务节点,并向相应的执行节点发送该服务节点的访问入口等信息。
[0086]
当所述节点查询请求来自执行节点时,该执行节点将会通过所述访问入口持续上传其服务器地址、负载均衡信息至所述服务节点,以便所述服务节点将其添加到相应的数据库中,并通过对该数据库中存在的执行节点进行筛选,选出用于处理任务操作请求对应的任务的至少一个执行节点。
[0087]
当所述执行节点处于负载未满状态时,会定时地发送相应任务的节点查询请求至所述节点数据库中,查询相应的服务节点,获取相应的任务进行处理,实现合理高效地利用执行节点的计算资源。
[0088]
所述的代理节点,一般是指接收由客户端发送的需处理的任务的服务器,当用户端进行相应的任务操作时,会向相应的代理服务器发送需处理的任务,以便代理节点向节
点数据库发送所述的节点查询请求,从节点数据库中获取相应的服务节点的访问入口,并通过该访问入口发送相应的任务操作请求至该服务节点中,使得所述服务节点将该任务操作请求发送给相应的部分执行节点,完成对该任务的调度。
[0089]
当执行节点发送所述节点查询请求至节点数据库后,其所接收的反馈结果不包含相应的服务节点的访问入口时,将会向所述节点数据库发送相应任务类型的角色切换指令,以便将其切换为该任务类型所对应的服务节点,为该类型任务进行调度,关于角色切换的实现方式,请参考后续步骤的叙述。
[0090]
步骤s12,当节点数据库中查询不到与所述任务类型相对应的服务节点期间,响应任意所述执行节点的角色切换指令,将该执行节点的访问入口与该任务类型关联存储为所述节点数据库的数据记录,以使该执行节点升级为所述的服务节点:
[0091]
当节点数据库响应由执行节点发送的所述节点查询请求,且查询不到与该节点查询请求所对应任务类型相对应的服务节点时,将向该执行节点发送的反馈结果将不包含该服务节点的访问入口,所述执行节点将向节点数据库发送角色切换指令,以便所述节点数据库通过响应该角色切换指令,将该执行节点的访问入口与该任务类型关联的信息存储在为所述节点数据库的数据记录,以使该执行节点切换为该节点查询请求所对应的任务类型的服务节点。
[0092]
当所述节点数据库同时接收到多个所述角色切换指令时,将响应最先接收到的角色切换指令,并将该角色切换指令所属的执行节点的访问入口、任务类型信息储存为数据记录,以便确定该执行节点的任务类型及向相应的执行节点发送该执行节点的访问入口,完成将该执行节点升级为其对应任务类型的服务节点。
[0093]
当所述执行节点切换为所述服务节点后,将持续接收到来自其所述节点查询请求所对应的任务类型的执行节点的负载均衡信息,且接收到来自代理节点发送的该任务类型所对应的任务操作请求,并将所述任务操作请求添加到任务池中,以便为该任务操作请求调度对应的至少一个所述执行节点,使该任务操作请求所对应的任务被所述执行节点处理。
[0094]
通过本步骤所构建的角色切换模块,高效地利用执行节点的计算资源,同时也可为某一任务类型提供其对应的服务节点处于宕机的状态时的解决方式,当节点数据库响应由执行节点发送的所述节点查询请求,查询到对应服务节点处于宕机状态时,将无法为该执行节点进行反馈,因此该执行节点将向节点数据库发送角色切换指令,以便节点数据库响应该计算切换指令,将其切换为对应任务类型的服务节点,进行该任务类型的任务调度,修复该任务类型的任务调度服务。
[0095]
步骤s13,监控任意所述服务节点的连接状态,当任意服务节点断开连接后,从节点数据库中清除与该服务节点相对应的数据记录:
[0096]
为了监控各个服务节点当前的运行状态,即时发现并处理处于宕机状态的服务节点,节点数据库可通过监控其储存的服务节点的连线状态,当监控到服务节点断开连接达到预定时长,或者服务节点多次未响应相关请求后,即表明该服务节点处于宕机状态,节点数据库会将该服务节点的数据记录清除,以便发送与该服务节点相对应的节点查询请求的执行节点,通过发送角色切换指令,升级为新的服务节点处理该类任务的任务调度。
[0097]
本方法所实现的所有步骤之间将并发执行,即节点数据库可并发执行节点查询请
求的响应、角色切换指令的响应以及监控节点数据库中的服务节点的连接状态,并通过网络链路实时更新相应服务器中的节点数据库的数据记录,构建一个拥有多线程工作模式的多中心的分布式任务调度系统。
[0098]
进一步,可以通过将上述各实施例所揭示的方法中的各个步骤进行功能化,构造出本申请的一种节点调度装置,按照这一思路,请参阅图4,其中的一个典型实施例中,该装置包括:
[0099]
请求响应单元11,用于响应于节点查询请求,获取其中指定的任务类型,从节点数据库中查询确定与该任务类型相应的服务节点的访问入口,作为对该请求的反馈,每个服务节点用于为其对应的类型的任务调度具体执行节点;
[0100]
指令响应单元12,用于当节点数据库中查询不到与所述任务类型相对应的服务节点期间,响应任意所述执行节点的角色切换指令,将该执行节点的访问入口与该任务类型关联存储为所述节点数据库的数据记录,以使该执行节点升级为所述的服务节点;
[0101]
节点监控单元13,用于监控任意所述服务节点的连接状态,当任意服务节点断开连接后,从节点数据库中清除与该服务节点相对应的数据记录。
[0102]
请参阅图5,本申请的一种节点切换方法,由节点服务器侧的应用程序负责执行体现,在其典型实施例中,其包括如下步骤:
[0103]
步骤s21,发起节点查询请求,向节点数据库查询当前节点预设的任务类型相匹配的服务节点,获取相应的反馈结果:
[0104]
执行节点会定时向节点数据库发送相应任务类型的所述节点查询请求,以便所述节点数据库响应于该节点查询请求,查询该任务类型对应的服务节点,将响应的反馈信息发送至执行节点中。
[0105]
当反馈信息包含节点查询请求所对应的服务节点的访问入口时,执行节点将通过访问入口持续上传其自身的负责均衡信息至对应的服务节点中,以便参与该服务节点的任务操作请求调度活动,抢占相应的任务操作请求所对应任务类型的执行权。
[0106]
当反馈结果不包含节点查询请求所对应的服务节点的访问入口时,执行节点将会向节点数据库发送角色切换指令,以便将自身切换为所述节点查询请求所对应任务类型的服务节点,为该任务类型的任务操作请求调度相应的执行节点。
[0107]
每一个执行节点或服务节点其对应的处理或调度任务类型,一般可由技术人员在部署时进行设置或适时进行修改,以便确定执行节点发送相应的节点查询请求到节点数据库中查询相应的服务节点,及服务节点接收相应的任务操作请求。
[0108]
步骤s22,当所述反馈结果指示节点数据库中不存在相应的服务节点的数据记录时,发起角色切换指令,以将当前节点的访问入口与其预设的任务类型关联存储于所述节点数据库中以备查询,以将当前节点升级为所述的服务节点:
[0109]
如前所述,当节点数据库响应由执行节点发送的节点查询请求,并查询不到该节点查询请求所对应的服务节点时,会向该执行节点发送响应的反馈结果,以便所述执行节点发送所述角色切换指令,并将其访问入口、调度任务类型、等节点自身配置信息发送至节点数据库中,所述节点数据库通过响应所述角色切换指令,将所述执行节点的节点自身信息作为数据记录进行储存,完成将该执行节点升级为服务节点的操作。
[0110]
所述执行节点通过向节点数据库发送所述角色切换指令,完成从执行节点切换为
服务节点的操作,实现节点服务器角色自动切换机制,因此同一节点服务器拥有两种工作模式,即一个节点服务器既可负责执行节点的工作,也可负责服务节点的工作,使得节点服务器拥有机动性,可灵活自动切换工作模式,提高调度系统的部署,且可处理调度系统出现的故障,例如,当某一任务类型的服务节点宕机时,相应的执行节点可自动切换为该任务类型的服务节点以处理该任务类型的任务操作请求,提高了调度系统的容灾性。
[0111]
后续所述节点数据库接受与上述相同的节点查询请求调度时,会将上述由执行节点升级的所述服务节点的访问入口、任务类型等该服务节点的自身信息反馈给该节点查询请求所属的执行节点或代理节点,以便其执行相应的操作。
[0112]
步骤s23,在当前节点升级为服务节点之后,接收所述任务类型相对应的任务操作请求,将其添加到任务池中供执行节点抢占处理:
[0113]
在典型实施例中,所述执行节点通过发送角色切换指令至节点数据库中,完成升级为所述服务节点后,代理节点可通过该服务节点的访问入口发送与该服务节点相对应任务类型的任务操作请求,以便所述服务节点将其添加到任务池中,并将该任务操作请求通知给已通过所述访问入口上报的部分执行节点,完成对该任务操作请求对应的任务类型的调度。
[0114]
所述的任务操作请求,其包含任务类型信息,任务操作信息等,以便表示代理节点待处理任务的信息,当所述任务操作请求发送到对应的服务节点后,将被该服务节点添加到任务池中,以便服务节点将该任务操作请求调度到相应的执行节点中。
[0115]
所述的任务池,是指储存服务节点接收到的一个或多个所述任务操作请求的数据库,服务节点通过解析所述任务操作请求,获取并添加该任务操作请求所属的代理节点的访问入口、执行任务操作所需的计算资源信息等到所述任务池中作为其数据,一般情况下,所述任务池以列表的形式构建,以便有序地调度所述任务操作请求,服务节点将优先处理最先接收到的所述任务操作请求。
[0116]
为了更全面地叙述执行节点升级为所述服务节点的具体实施细节,请参阅图6,当节点为所述服务节点时,可以通过执行如下具体步骤执行:
[0117]
步骤s231,接收代理节点发送的符合预设任务类型的任务操作请求,将其添加到任务池中:
[0118]
所述代理节点通过由节点数据库发送的反馈结果中的访问入口,向相应的服务节点发送其需处理的任务操作请求,以便服务节点将所述任务操作请求添加到任务池中,并为该任务操作请求调度相应的执行节点处理其对应的任务。
[0119]
所述任务池以列表的形式储存服务节点接收到的所有任务操作请求,因此服务节点将优先处理任务池中当前最早添加的任务操作请求,有效地处理其接收到的所有任务操作请求。
[0120]
步骤s232,根据与该预设任务类型相匹配的执行节点上报的负载均衡信息,选出用于处理该任务操作请求的部分执行节点:
[0121]
所述执行节点通过从节点数据库获得的反馈结果中服务节点的访问入口,向该服务节点上报其所述负载均衡信息,以便所述服务节点为其调度任务操作请求。
[0122]
所述的负载均衡信息,用于表示其所属的执行节点当前计算资源的占用情况,执行节点通过访问入口,服务节点可通过分析所述负载均衡信息,筛选出有足够计算资源的
部分执行节点,并向所述部分执行节点发送其存放在任务池中的所述任务操作请求。
[0123]
服务节点接收与自身任务类型相匹配的执行节点上报的所述负载均衡信息后,会将其存放在相应的数据库中,以便分析其所接收到的所有负载均衡信息,选出用于适用于处理其当前任务操作请求的部分执行节点。
[0124]
步骤s233,向所述部分执行节点发送通知处理所述任务操作请求的任务消息:
[0125]
服务节点通过分析存在执行节点数据库中的所有负载均衡信息,确定出适合处理当前待调度的任务操作请求的所对应的任务的部分执行节点,并向部分执行节点发送该任务操作请求,以便所述部分执行节点通过实施任务操作请求,抢占所述任务操作请求对应的任务的处理权(执行权)。
[0126]
步骤s234,由所述部分执行节点中最先响应者实施对所述任务操作请求的抢占处理:
[0127]
服务节点将所述任务操作请求通知至其筛选出的部分执行节点后,所述部分执行节点中最先响应该任务操作请求的执行节点,其将获得所述任务操作请求对应的任务的处理权。
[0128]
当所述部分节点接收到来自服务节点发送任务操作请求后,将解析该任务操作请求,获取任务操作信息,以便确定当前是否有多余的计算资源满足该任务操作请求所对应的任务执行所需的计算资源,若满足,则将向所述服务节点发送响应通知。
[0129]
服务节点将最先接收到的响应通知所属的执行节点作为处理该任务操作请求的执行节点,并给予该执行节点处理所述任务操作请求的处理权,以便该执行节点处理所述任务操作请求所属的代理节点的需处理任务。
[0130]
步骤s24,当所述反馈结果包含相匹配的服务节点的访问入口时,保持当前节点作为所述的执行节点用于处理所述预设的任务类型的任务操作请求:
[0131]
当执行节点通过向节点数据库发送节点查询请求,接收到由所述节点数据库发送的反馈结果中包含访问入口时,所述执行节点将通过该访问入口,持续向对应的服务节点上报其负载均衡信息,以便从服务节点中获取相应任务类型的所述任务操作请求,抢占处理该任务。
[0132]
为了更全面地叙述执行节点接收到所述反馈结果包含相匹配的服务节点的访问入口的具体实施细节,请参阅图7,所述执行节点可以通过执行如下具体步骤执行:
[0133]
步骤s241,持续向与自身预设的任务类型相匹配的服务节点上传自身的负载均衡信息:
[0134]
当所述执行节点接收到由节点数据库发送的反馈结果包含相匹配的服务节点的访问入口后,将通过访问入口向该服务节点持续上传自身的所述负责均衡信息,以便不断地更新其储存在所述服务节点上自身的负载均衡信息,从所述服务节点中获取任务操作请求,抢占任务进行处理,利用其自身的空闲计算资源,使得自身尽可能地处于满负荷的工作状态。
[0135]
步骤s242,当接收到所述服务节点发送的通知处理任务操作请求的任务消息时,从所述任务池中抢占至少一个任务操作请求:
[0136]
当所述执行节点的负责均衡信息满足服务节点当前待处理的任务操作请求需要的计算资源时,该执行节点将接收到所述任务操作请求,且所述执行节点将持续向服务节
点发送其自身的负载均衡信息,以便不断地从服务节点接收到其他的任务操作请求,同时不断地响应接收到的任务操作请求,进而从中获取到至少一个任务的执行权。
[0137]
一种实施例中,执行节点可处理任意类型的任务,所述执行节点可获取多个服务节点获取任务操作请求,因此当执行节点将结合自身当前的计算资源,从获取的多个任务操作请求中确定当前可执行的任务操作请求进行响应,通知该任务操作请求发送的服务节点,以便抢占所述任务操作请求的任务执行权。
[0138]
步骤s243,对成功抢占的任务操作请求实施任务处理:
[0139]
当所述执行节点为服务节点发送的某一任务操作请求最先响应的执行节点时,该执行节点将获得所述任务操作请求对应任务的执行权,并对该任务进行处理。
[0140]
所述执行节点在获取到所述任务操作请求的任务执行权后,将通过解析该任务操作请求获取其所携带的任务信息、代理节点访问入口,通过任务信息执行相应的任务,并将完成任务的执行结果通过代理节点访问入口发送至相应的代理节点,以便代理节点获取该任务操作请求所需要获得的数据等信息。
[0141]
进一步,可以通过将上述各实施例所揭示的方法中的各个步骤进行功能化,构造出本申请的一种节点切换装置,按照这一思路,请参阅图8,其中的一个典型实施例中,该装置包括:
[0142]
请求发起单元21,用于发起节点查询请求,向节点数据库查询当前节点预设的任务类型相匹配的服务节点,获取相应的反馈结果;
[0143]
指令发起单元22,用于当所述反馈结果指示节的服务节点的访问入口时,保持当前节点作为所述的执行节点用于处理所述预设的点数据库中不存在相应的服务节点的数据记录时,发起角色切换指令,以将当前节点的访问入口与其预设的任务类型关联存储于所述节点数据库中以备查询,以将当前节点升级为所述的服务节点;
[0144]
请求添加单元23,用于在当前节点升级为服务节点之后,接收所述任务类型相对应的任务操作请求,将其添加到任务池中供执行节点抢占处理;
[0145]
反馈确定单元24,用于当所述反馈结果包含相匹配的服务节点的访问入口时,保持当前节点作为所述的执行节点用于处理所述预设的任务类型的任务操作请求。
[0146]
请参阅图9,本申请的一种节点协调方法,由服务节点侧的应用程序负责执行体现,在其典型实施例中,其包括如下步骤:
[0147]
步骤s31,适应多个任务类型,每一任务类型的多个服务节点竞争服务于该类型的任务的调度权,确定获得调度权者为该类型的服务节点,用于为该类型的任务调度具体执行节点:
[0148]
当多个执行节点通过所述角色切换指令,企图将自身切换为与相应任务类型的服务节点时,所述节点数据库将最先响应的角色切换指令的执行节点升级为所述服务节点,并将其数据记录储存到数据库中,由此确认出该任务类型的对应的服务节点。
[0149]
当所述执行节点升级为所述服务节点后,将持续接收到通过其访问入口发送的任务操作请求,并将其添加到所述任务池中,以便有序地处理各个任务操作请求。
[0150]
被确定的服务节点除了接收到所述任务操作请求外,还会持续接收到通过其访问入口上传的各执行节点的负载均衡信息,实现实时更新各个执行节点的负载均衡信息,以防止后续确定部分执行节点时出现负载均衡信息与其对应的执行节点的自身负载情况不
匹配。
[0151]
步骤s32,被确定出的每个服务节点根据多个在任务类型上与其相关联的执行节点上报的负载均衡信息,为代理节点请求处理的任务优选出部分执行节点:
[0152]
所述服务节点通过分析多个在任务类型上与其相关联的执行节点上报的最新负载均衡信息,选择满足执行所述任务操作请求所需的计算资源的执行节点作为部分执行节点,并向所述部分执行节点发送所述任务操作请求,以便所述部分执行节点响应该任务操作请求。
[0153]
服务节点通过解析任务操作请求,确定执行该任务操作请求其对应的任务所需的计算资源,并在最新接收到的多个所述负载均衡信息中选择至少一个满足该计算资源的执行节点,作为可处理该任务操作请求对应的任务的执行节点。
[0154]
步骤s33,被确定出的服务节点向所述部分执行节点发送关于请求处理的任务的任务消息:
[0155]
服务节点在选择出部分执行节点后,将所述部分执行节点发送所述任务操作请求,以便所述部分执行节点响应该任务操作请求,并向所述服务节点发送响应通知。
[0156]
执行节点在接收到来自服务节点发送的所述任务操作请求后,将分析当前自身的计算资源是否满足该任务操作请求对应任务的计算资源,若满足,则向所述服务节点发送响应通知,若不满足,则等待其自身的计算资源满足该请求的计算资源后再并向所述服务节点发送响应通知。
[0157]
服务节点将记录所有接收到该任务操作请求的执行节点的响应时间,以便后续步骤中确定出最先响应的执行节点。
[0158]
步骤s34,被确定出的服务节点将请求处理的任务调度给所述部分执行节点中竞争所述被请求处理的任务的执行权的胜出者实施任务处理:
[0159]
所述的竞争,是指服务节点将在接收到所有所述任务操作请求的执行节点的响应时间中选择响应时间最早的执行节点,由响应时间最早的执行节点获得处理该任务操作请求的机会,该执行节点将为该任务操作请求对应的任务进行处理。
[0160]
服务节点通过相应的指令,以便赋予响应时间最早的执行节点处理所述任务操作请求所对应的任务的执行权,该执行节点在获得该任务的执行权后,将通过解析该任务操作请求获取其所携带的任务信息、代理节点访问入口,通过任务信息完成该任务的处理后,并将通过所述代理节点访问入口,向代理节点发送执行结果,以此完成对该任务的处理。
[0161]
进一步,可以通过将上述各实施例所揭示的方法中的各个步骤进行功能化,构造出本申请的一种节点协调装置,按照这一思路,请参阅图10,其中的一个典型实施例中,该装置包括:
[0162]
节点确定单元31,用于适应多个任务类型,每一任务类型的多个服务节点竞争服务于该任务类型的任务的调度权,对应确定一个用于为其对应的类型的任务调度具体执行节点的服务节点;
[0163]
节点筛选单元32,用于被确定出的每个服务节点根据多个在任务类型上与其相关联的执行节点上报的负载均衡信息,为代理节点请求处理的任务优选出部分执行节点;
[0164]
任务发起单元33,用于被确定出的服务节点向所述部分执行节点发送关于请求处理的任务的任务消息;
[0165]
任务调度单元34,用于被确定出的服务节点将请求处理的任务调度给所述部分执行节点中竞争所述被请求处理的任务的执行权的胜出者实施任务处理。
[0166]
进一步,为便于本申请的执行,本申请提供一种电子设备,包括中央处理器和存储器,所述中央处理器用于调用运行存储于所述存储器中的计算机程序以执行如前所述的各实施例中所述的节点调度方法、所述的节点切换方法及所述的节点协调方法的步骤。
[0167]
可以看出,存储器适宜采用非易失性存储介质,通过将前述的方法实现为计算机程序,安装到手机或计算机之类电子设备中,相关程序代码和数据便被存储到电子设备的非易失性存储介质中,进一步通过电子设备的中央处理器运行该程序,将其从非易性存储介质中调入内存中运行,便可实现本申请所期望的目的。因此,可以理解,本申请的一个实施例中,还可提供一种非易失性存储介质,其中存储有依据所述的节点调度方法、所述的节点切换方法及所述的节点协调方法各个实施例所实现的计算机程序,该计算机程序被计算机调用运行时,执行该方法所包括的步骤。
[0168]
综上所述,本申请实现了一种多中心的分布式任务调度系统,高效有序地调度客户端预处理的各类型任务,且通过角色切换模块,实现节点服务器拥有两种工作模式,体现出所述多中心的分布式任务调度系统的机动性,以应对在调度任务过程中出现的问题。
[0169]
本技术领域技术人员可以理解,本申请包括涉及用于执行本申请中所述操作、方法中的一项或多项的设备。这些设备可以为所需的目的而专门设计和制造,或者也可以包括通用计算机中的已知设备。这些设备具有存储在其存储器之内的计算机程序,这些计算机程序选择性地激活或重构。这样的计算机程序可以被存储在设备(例如,计算机)可读介质中或者存储在适于存储电子指令并分别耦联到总线的任何类型的介质中,所述计算机可读介质包括但不限于任何类型的盘(包括软盘、硬盘、光盘、cd-rom、和磁光盘)、rom(read-only memory,只读存储器)、ram(random access memory,随即存储器)、eprom(erasable programmable read-only memory,可擦写可编程只读存储器)、eeprom(electrically erasable programmable read-only memory,电可擦可编程只读存储器)、闪存、磁性卡片或光线卡片。也就是,可读介质包括由设备(例如,计算机)以能够读的形式存储或传输信息的任何介质。
[0170]
本技术领域技术人员可以理解,可以用计算机程序指令来实现这些结构图和/或框图和/或流图中的每个框以及这些结构图和/或框图和/或流图中的框的组合。本技术领域技术人员可以理解,可以将这些计算机程序指令提供给通用计算机、专业计算机或其他可编程数据处理方法的处理器来实现,从而通过计算机或其他可编程数据处理方法的处理器来执行本申请公开的结构图和/或框图和/或流图的框或多个框中指定的方案。
[0171]
本技术领域技术人员可以理解,本申请中已经讨论过的各种操作、方法、流程中的步骤、措施、方案可以被交替、更改、组合或删除。进一步地,具有本申请中已经讨论过的各种操作、方法、流程中的其他步骤、措施、方案也可以被交替、更改、重排、分解、组合或删除。进一步地,现有技术中的具有与本申请中公开的各种操作、方法、流程中的步骤、措施、方案也可以被交替、更改、重排、分解、组合或删除。
[0172]
以上所述仅是本申请的部分实施方式,应当指出,对于本技术领域的普通技术人员来说,在不脱离本申请原理的前提下,还可以做出若干改进和润饰,这些改进和润饰也应视为本申请的保护范围。
当前第1页1 2 3 
网友询问留言 已有0条留言
  • 还没有人留言评论。精彩留言会获得点赞!
1