CN111970148A - 分布式任务调度方法及系统 - Google Patents
分布式任务调度方法及系统 Download PDFInfo
- Publication number
- CN111970148A CN111970148A CN202010822861.3A CN202010822861A CN111970148A CN 111970148 A CN111970148 A CN 111970148A CN 202010822861 A CN202010822861 A CN 202010822861A CN 111970148 A CN111970148 A CN 111970148A
- Authority
- CN
- China
- Prior art keywords
- scheduling
- node
- task
- fault
- execution
- Prior art date
- Legal status (The legal status is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the status listed.)
- Pending
Links
- 238000000034 method Methods 0.000 title claims abstract description 68
- 230000002159 abnormal effect Effects 0.000 claims abstract description 53
- 230000007246 mechanism Effects 0.000 claims abstract description 28
- 238000012544 monitoring process Methods 0.000 claims abstract description 26
- 230000015654 memory Effects 0.000 claims description 11
- 238000004590 computer program Methods 0.000 claims description 6
- 230000008569 process Effects 0.000 description 14
- 238000010586 diagram Methods 0.000 description 12
- 230000006870 function Effects 0.000 description 7
- 238000004891 communication Methods 0.000 description 4
- 230000000694 effects Effects 0.000 description 4
- 230000008878 coupling Effects 0.000 description 3
- 238000010168 coupling process Methods 0.000 description 3
- 238000005859 coupling reaction Methods 0.000 description 3
- 238000013461 design Methods 0.000 description 3
- 230000000903 blocking effect Effects 0.000 description 2
- 230000003993 interaction Effects 0.000 description 2
- 230000005856 abnormality Effects 0.000 description 1
- 230000008859 change Effects 0.000 description 1
- 238000012423 maintenance Methods 0.000 description 1
- 238000012986 modification Methods 0.000 description 1
- 230000004048 modification Effects 0.000 description 1
- 230000003287 optical effect Effects 0.000 description 1
- 238000012545 processing Methods 0.000 description 1
- 238000011084 recovery Methods 0.000 description 1
- 230000004044 response Effects 0.000 description 1
- 238000006467 substitution reaction Methods 0.000 description 1
Images
Classifications
-
- H—ELECTRICITY
- H04—ELECTRIC COMMUNICATION TECHNIQUE
- H04L—TRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
- H04L67/00—Network arrangements or protocols for supporting network services or applications
- H04L67/50—Network services
- H04L67/60—Scheduling or organising the servicing of application requests, e.g. requests for application data transmissions using the analysis and optimisation of the required network resources
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F16/00—Information retrieval; Database structures therefor; File system structures therefor
- G06F16/20—Information retrieval; Database structures therefor; File system structures therefor of structured data, e.g. relational data
- G06F16/23—Updating
- G06F16/2308—Concurrency control
- G06F16/2336—Pessimistic concurrency control approaches, e.g. locking or multiple versions without time stamps
- G06F16/2343—Locking methods, e.g. distributed locking or locking implementation details
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F16/00—Information retrieval; Database structures therefor; File system structures therefor
- G06F16/20—Information retrieval; Database structures therefor; File system structures therefor of structured data, e.g. relational data
- G06F16/27—Replication, distribution or synchronisation of data between databases or within a distributed database system; Distributed database system architectures therefor
-
- H—ELECTRICITY
- H04—ELECTRIC COMMUNICATION TECHNIQUE
- H04L—TRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
- H04L41/00—Arrangements for maintenance, administration or management of data switching networks, e.g. of packet switching networks
- H04L41/06—Management of faults, events, alarms or notifications
- H04L41/0654—Management of faults, events, alarms or notifications using network fault recovery
- H04L41/0663—Performing the actions predefined by failover planning, e.g. switching to standby network elements
-
- H—ELECTRICITY
- H04—ELECTRIC COMMUNICATION TECHNIQUE
- H04L—TRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
- H04L67/00—Network arrangements or protocols for supporting network services or applications
- H04L67/01—Protocols
- H04L67/10—Protocols in which an application is distributed across nodes in the network
Landscapes
- Engineering & Computer Science (AREA)
- Theoretical Computer Science (AREA)
- Computer Networks & Wireless Communication (AREA)
- Signal Processing (AREA)
- Databases & Information Systems (AREA)
- Data Mining & Analysis (AREA)
- Physics & Mathematics (AREA)
- General Engineering & Computer Science (AREA)
- General Physics & Mathematics (AREA)
- Computing Systems (AREA)
- Hardware Redundancy (AREA)
Abstract
本发明提供了一种分布式任务调度方法及系统,涉及计算技术领域,该方法包括:对中间件中的调度任务的事件进行监听,其中,所述调度任务对应有第一容错锁,与所述第一容错锁绑定的调度节点为主调度节点,调度节点集群中除主调度节点以外的调度节点作为备调度节点;如果监听到所述调度任务的主调度节点异常事件,则向所述中间件请求所述第一容错锁;如果得到所述第一容错锁,则基于所述第一容错锁在数据库中确定所述第一容错锁对应的所述调度任务,并执行所述调度任务。缓解了现有技术中存在的容错率低的技术问题,实现了对于调度任务较高的容错机制,提升了任务调度系统的稳定性。
Description
技术领域
本发明涉及计算机技术领域,尤其是涉及一种分布式任务调度方法及系统。
背景技术
任务调度是指基于给定的时间点,以给定的时间间隔或者给定的执行次数自动执行任务。分布式任务调度可以将具体执行指令指定给具体节点去执行,整个过程即为分布式任务调度,当然这里的调度是基于所有分布式节点资源冗余、网络情况、任务复杂性等综合因素判断的,整个判断过程即为调度过程。在这个过程(即调度过程)中可能因为某些原因指定的节点执行失败,这个时候需要调度器去感知、去重新提交执行或者更改节点执行(即执行节点容错);同时下发任务的调度器如果发生异常,也需要有较好的容错机制,保证任务可以正常下发(即调度器容错)。
因此,分布式调度系统容错机制设计主要需要考虑两方面:执行节点容错和调度器容错。增强这两部分的健壮性和可容错性,有利于提升分布式调度系统的整体稳定性,分布式调度系统容错机制也是整个分布式调度系统是否成熟的重要标志。
目前,最基本的调度系统即为linux的crontab工具,可以提供定时、定次执行某些命令,在此基础上多机配置实现分布式任务调度,这个工具调度基本没有容错机制,当前机器执行失败后也不会选择其他机器执行。
常见的分布式任务调度系统如AZKABAN,AZKABAN是高级成熟的调度系统,有调度器的容错机制,即如果调度的目标机器执行失败会重新提交任务。但是调度器本身是单点部署,没有容错机制。
发明内容
本发明的目的在于提供一种分布式任务调度方法及系统,以缓解现有技术中存在的分布式调度系统容错率低的技术问题。
第一方面,本发明实施例提供一种分布式任务调度方法,包括:
对中间件中的调度任务的事件进行监听,其中,所述调度任务对应有第一容错锁,与所述第一容错锁绑定的调度节点为主调度节点,调度节点集群中除所述主调度节点以外的调度节点作为备调度节点;
如果监听到所述调度任务的主调度节点异常事件,则向所述中间件请求所述第一容错锁;
如果得到所述第一容错锁,则基于所述第一容错锁在数据库中确定所述第一容错锁对应的所述调度任务,并执行所述调度任务。
在可选的实施方式中,执行所述调度任务的步骤,包括:
基于所述调度任务确定执行任务以及执行节点;
指示所述执行节点执行所述执行任务。
在可选的实施方式中,所述执行节点为多个,所述多个执行节点中的一个为主执行节点,其他为备执行节点;所述指示所述执行节点执行所述执行任务包括:指示所述主执行节点执行所述执行任务。
第二方面,本发明实施例提供一种分布式任务调度方法,包括:
对中间件中的执行任务的事件进行监听,其中,所述执行任务对应有第二容错锁,与所述第二容错锁绑定的执行节点作为主执行节点,所述执行任务对应有多个备执行节点;
如果监听到所述执行任务的主执行节点异常事件,则向所述中间件请求所述第二容错锁;
如果得到所述第二容错锁,则基于所述第二容错锁执行所述执行任务。
在可选的实施方式中,还包括:
当所述执行任务执行完成时释放所述第二容错锁。
第三方面,本发明实施例提供一种分布式任务调度方法,包括:
基于多个调度节点的注册信息,确定调度任务的第一主调度节点,并将所述第一主调度节点与所述调度任务对应的第一容错锁进行绑定,所述多个调度节点中除第一主调度节点以外的调度节点作为备调度节点;
对所述主调度节点进行监听;
如果确定所述主调度节点异常,则将所述第一容错锁与所述调度任务解绑,并向所述调度任务的备调度节点发送主调度节点异常事件;
从所述备调度节点中确定第二主调度节点,并将所述第一容错锁与所述第二主调度节点进行绑定。
在可选的实施方式中,还包括:
基于多个执行节点的注册信息,对执行任务的第一主执行节点进行监听,所述第一主执行节点对应有多个备执行节点,所述第一主执行节点与所述执行任务的第二容错锁绑定;
如果确定所述主执行节点异常,则将所述第二容错锁与所述执行任务解绑,并向所述执行任务的备执行节点发送主执行节点异常事件;
从所述备执行节点中确定第二主执行节点,并将所述第二容错锁与所述第二主执行节点进行绑定。
第四方面,本发明实施例提供一种分布式任务调度系统,包括:
中间件,用于基于多个调度节点的注册信息,确定调度任务的第一主调度节点,并将所述第一主调度节点与所述调度任务对应的第一容错锁进行绑定,所述多个调度节点中除所述第一主调度节点以外的调度节点作为备调度节点;对所述主调度节点进行监听;如果确定所述主调度节点异常,则将所述第一容错锁与所述调度任务解绑,并向所述调度任务的备调度节点发送主调度节点异常事件;从所述备调度节点中确定第二主调度节点,并将所述第一容错锁与所述第二主调度节点进行绑定;
调度节点,用于对中间件中的调度任务的事件进行监听,其中,所述调度任务对应有第一容错锁,与所述第一容错锁绑定的调度节点为主调度节点,调度节点集群中除主调度节点以外的调度节点作为备调度节点;如果监听到所述调度任务的主调度节点异常事件,则向所述中间件请求所述第一容错锁;如果得到所述第一容错锁,则基于所述第一容错锁在数据库中确定所述第一容错锁对应的所述调度任务,并执行所述调度任务;
执行节点,用于对中间件中的执行任务的事件进行监听,其中,所述执行任务对应有第二容错锁,与所述第二容错锁绑定的执行节点作为主执行节点,所述执行任务对应有多个备执行节点;如果监听到所述执行任务的主执行节点异常事件,则向所述中间件请求所述第二容错锁;如果得到所述第二容错锁,则基于所述第二容错锁执行所述执行任务。
在可选的实施方式中,所述中间件基于zookeeper(一种分布式应用程序协调服务)机制或etcd(另一种分布式应用程序协调服务)机制管理所述第一容错锁和所述第二容错锁。
第五方面,本发明实施例提供一种计算机设备,包括存储器、处理器,所述存储器中存储有可在所述处理器上运行的计算机程序,所述处理器执行所述计算机程序时实现上述前述实施方式任一项所述的方法的步骤。
第六方面,本发明实施例提供一种计算机可读存储介质,所述计算机可读存储介质存储有机器可运行指令,所述计算机可运行指令在被处理器调用和运行时,所述计算机可运行指令促使所述处理器运行所述前述实施方式任一项所述的方法。
本发明提供的一种分布式任务调度方法及系统,通过将调度节点进行多机部署,并基于中间件来实现多个调度节点的信息共享问题,只有拿到第一容错锁的调度节点才可以执行调度任务,一个调度节点异常的时候另一个调度节点可以迅速的知道并且竞争该第一容错锁,以便接管调度任务,实现了对于调度任务较高的容错机制,提升了任务调度系统的稳定性。
附图说明
为了更清楚地说明本发明具体实施方式或现有技术中的技术方案,下面将对具体实施方式或现有技术描述中所需要使用的附图作简单地介绍,显而易见地,下面描述中的附图是本发明的一些实施方式,对于本领域普通技术人员来讲,在不付出创造性劳动的前提下,还可以根据这些附图获得其他的附图。
图1为本本申请实施例提供的一种分布式任务调度系统架构示意图;
图2为本申请实施例提供的一种分布式任务调度方法流程示意图;
图3为本申请实施例提供的另一种分布式任务调度方法流程示意图;
图4为本申请实施例提供的另一种分布式任务调度方法流程示意图;
图5为本申请实施例提供的另一种分布式任务调度方法流程示意图;
图6为本申请实施例提供的另一种分布式任务调度方法流程示意图;
图7为本申请实施例提供的一种分布式任务调度装置结构示意图;
图8为本申请实施例提供的另一种分布式任务调度装置结构示意图;
图9为本申请实施例提供的另一种分布式任务调度装置结构示意图;
图10为本申请实施例提供的一种计算机设备结构示意图。
具体实施方式
为使本发明实施例的目的、技术方案和优点更加清楚,下面将结合本发明实施例中的附图,对本发明实施例中的技术方案进行清楚、完整地描述,显然,所描述的实施例是本发明一部分实施例,而不是全部的实施例。通常在此处附图中描述和示出的本发明实施例的组件可以以各种不同的配置来布置和设计。
因此,以下对在附图中提供的本发明的实施例的详细描述并非旨在限制要求保护的本发明的范围,而是仅仅表示本发明的选定实施例。基于本发明中的实施例,本领域普通技术人员在没有作出创造性劳动前提下所获得的所有其他实施例,都属于本发明保护的范围。
应注意到:相似的标号和字母在下面的附图中表示类似项,因此,一旦某一项在一个附图中被定义,则在随后的附图中不需要对其进行进一步定义和解释。
本发明提供一种分布式调度系统容错机制设计,主要分为调度器容错、执行节点容错两部分,以解决分布式调度系统任务执行异常时可重新执行的问题,从而整体提升分布式调度系统的健壮性和稳定性。
按照一般的分布式调度系统设计,分布式调度系统一般分为两个类型的模块:调度器(或称为调度节点)和任务执行节点(或称为执行节点)。调度器的主要功能是读取任务执行节点资源、负载情况,确定任务执行规则和具体指定哪个节点执行,任务下发和结果收集;任务执行节点是分布式同构的,可以快速横向扩展,主要的功能是接收任务和执行任务。
结合图1所示,通常的调度器都是单机部署,也就会存在单点问题,一旦调度器发生异常,该调度器对应的操作都会失效。为了解决这一问题,本发明实施例提出了可以将调度器多机部署的方案。将调度器进行多机部署主要面临的问题是多个调度器信息如何共享,也就是如何保证一个调度器异常的时候另一个调度器可以迅速的知道并且接管调度任务。
其中,将调度器进行多机部署的方式包括多种。以基于第三方工具zookeeper(该zookeeper是一个针对大型分布式系统的协调系统,提供的功能包括:配置维护、名字服务、分布式同步、组服务等)机制进行部署的方式为例,该zookeeper机制可以由中间件以及多个调度节点来实现,可以利用zookeeper的分布式锁机制(所有进程都需要注册zookeeper的分布式锁,只有一个进程能抢到分布式锁,以此解决多机部署可能会出现重复执行任务的问题)和watcher机制(所有进程监听zookeeper的某一路径,当路径有变化时,zookeeper会通知所有进程,以此解决多个进程之间通信的问题,也就是可以实现多个调度节点之间调度节点信息的共享)。基于此,为了保存调度任务便于异常恢复,还可以使用数据库作为任务存储介质,其中,该数据库主要用于存储任务内容、执行节点等信息。
另外,调度节点可以在每次调度时,针对执行任务指定多台任务执行节点,第一台为主执行节点,其他多台为备执行节点,当主执行节点异常时备执行节点可以快速进行任务执行。
该执行节点以及调度节点均可以在中间件中注册分布式锁,如果注册成功则成为主调度节点或主执行节点。未注册成功的节点也可以对注册成功的节点的注册状态进行监测,如果注册状态出现异常,则可以竞争替代该出现异常的节点。例如,每台备执行节点都会监听主执行节点在中间件中的注册状态,一旦主执行节点异常,各个备执行节点会开始竞争获取分布式锁,以便重新执行任务。
下面结合附图,对本发明的一些实施方式作详细说明。在不冲突的情况下,下述的实施例及实施例中的特征可以相互组合。
图2为本发明实施例提供的一种分布式任务调度方法流程示意图。该方法应用于调度节点,如图2所示,该方法包括:
S210,对中间件中的调度任务的事件进行监听。
本发明实施例中,可以通过调度节点集群来实现调度任务的执行。其中,该调度节点集群中可以包括多个调度节点。调度节点集群中的调度节点可以向中间件中进行注册,以获取调度任务的容错锁,获取到容错锁的调度节点可以执行相应的调度任务。该容错锁可以为基于zookeeper机制或etcd机制实现的分布式锁。
例如,该调度节点集群中的多个调度节点可以注册到中间件。该中间件可以基于调度节点的任务信息分配与调度任务对应的第一容错锁。作为一个示例,可以按注册序号进行分配,序号排名第一的可以拿到第一容错锁(还可以称为第一分布式锁),作为可用调度节点(也就是主调度节点),其他调度节点为备调度节点。
在中间件中调度任务对应有第一容错锁,与该第一容错锁绑定的调度节点为主调度节点,调度节点集群中除主调度节点以外的调度节点作为备调度节点。
该备调度节点监听主调度节点在中间件中的注册状态,一旦该主调度节点异常,各个备调度节点可以开始竞争第一容错锁,以便执行该调度任务。
S220,如果监听到调度任务的主调度节点异常事件,则向中间件请求第一容错锁。
如果中间件确定主调度节点异常挂掉,可以从中间件的注册信息中移除该主调度节点的序号,也就是将第一容错锁与该主调度节点进行解绑。其他备调度节点可以监听到该中间件更新注册信息的事件,然后,各个备调度节点可以继续争抢该第一容错锁,拿到第一容错锁的调度节点可以读取数据库中的调度任务,执行主调度节点的职责,以此可以保证调度器容错。
S230,如果得到第一容错锁,则基于第一容错锁在数据库中确定第一容错锁对应的调度任务,并执行调度任务。
该数据库可以作为任务存储介质,该数据库可以存储调度任务内容、与调度任务对应的执行任务内容、调度节点、执行节点以及容错锁等信息。主调度节点可以从该数据库中获取该第一容错锁对应的调度任务,并执行。
本发明实施例通过将调度节点进行多机部署,并基于中间件来实现多个调度节点的信息共享问题,只有拿到第一容错锁的调度节点才可以执行调度任务,一个调度节点异常的时候另一个调度节点可以迅速的知道并且竞争该第一容错锁,以便接管调度任务,以此可以实现调度任务具有较高的容错机制,提升了任务调度系统的稳定性。
其中,对于每个待执行的执行任务,也可以实现多机部署,提高系统的稳定性。基于此,上述步骤S230中的执行调度任务的步骤,具体可以包括:基于调度任务确定执行任务以及多个执行节点,指示执行节点执行执行任务。优选的,该执行节点可以为多个,多个执行节点中的一个为主执行节点,其他的为备执行节点,可以指示该主执行节点执行执行任务。其中,该主执行节点可以由调度节点指定,也可以是调度节点指定的多个执行节点向中间件去竞争第二容错锁,该多个执行节点竞争第二容错锁的方式可以与多个调度节点竞争第一容错锁的方式相同,可以相互参照理解。
另外,当主调度节点执行完调度任务时,可以释放该第一容错锁。例如,主调度节点在执行完成调度任务后,可以向中间件发送执行完成指示信息,中间件可以基于该完成指示信息,可以在注册信息中将第一容错锁和该主调度节点的对应关系删除。该主调度节点以及备调度节点可以以普通调度节点的身份去竞争新的调度任务的容错锁。以此实现在保证调度任务的执行具有一定的冗余的同时,提升调度资源的利用率。
作为一个示例,如图3所示,基于中间件、主调度节点以及备调度节点之间的交互过程,对本发明实施例进行进一步的介绍。该方法可以包括如下步骤:
步骤1),中间件监听到主调度节点异常,则触发主调度节点异常事件,该异常事件用于指示主调度节点异常,以及该主调度节点与第一容错锁解绑;
步骤2),备调度节点竞争第一容错锁;
步骤3),竞争得到第一容错锁的备调度节点执行调度任务,并在调度任务完成后释放第一容错锁;
步骤4),未竞争得到第一容错锁的备调度节点阻塞直到得到第一容错锁。换句话说,没有得到第一容错锁的备调度节点,继续进行竞争,以便在新的主调度节点出现故障时,可以在第一时间争取第一容错锁。
图4为本发明实施例提供的一种分布式任务调度方法流程示意图。如图4所示,该方法应用于执行节点,该方法具体可以包括:
S410,对中间件中的执行任务的事件进行监听。
其中,执行任务对应有第二容错锁,与第二容错锁绑定的执行节点作为主执行节点,执行任务对应有多个备执行节点。
该主执行节点和该多个备执行节点可以由主调度节点确定。也可以是主调度节点确定多个执行节点,该多个执行节点可以向中间件竞争第二容错锁,确定主执行节点和备执行节点。
S420,如果监听到执行任务的主执行节点异常事件,则向中间件请求第二容错锁。
当主执行节点发生异常时,备执行节点可以向中间件发起挑战,以便与其他备执行节点竞争第二容错锁,争取替代该主执行节点。
S430,如果得到第二容错锁,则基于第二容错锁执行执行任务。
如果挑战成功,则备执行节点更新为主执行节点,执行相应的执行任务。中间件可以对执行节点的主备状态进行记录以及更新。其中,该执行任务相关的信息可以从数据库获取。
本发明实施例通过将执行节点进行多机部署,并基于中间件来实现多个执行节点的信息共享问题,只有拿到第二容错锁的执行节点才可以执行待执行任务,一个执行节点异常的时候另一个执行节点可以迅速的知道并且竞争该第二容错锁,以便接管执行任务,以此可以实现执行任务具有较高的容错机制,提升了任务调度系统的稳定性。
另外,当执行任务执行完成时释放第二容错锁。例如,主执行节点在执行完成执行任务后,可以向中间件发送执行完成指示信息,中间件可以基于该完成指示信息,可以在注册信息中将第二容错锁和该主执行节点的对应关系删除。该主执行节点以及备执行节点可以以普通执行节点的身份去竞争新的待执行任务的容错锁。以此实现在保证执行任务的执行具有一定的冗余的同时,提升执行资源的利用率。
作为一个示例,如图5所示,基于中间件、主执行节点以及备执行节点之间的交互过程,对本发明实施例进行进一步的介绍。该方法可以包括如下步骤:
步骤a),中间件监听到主执行节点异常,则触发主执行节点异常事件;
步骤b),备执行节点竞争第二容错锁;该主执行节点异常事件可以由备执行节点监听到,此时,备执行节点可以向中间件发起挑战,以便与其他的备执行节点竞争第二容错锁。
步骤c),竞争得到第二容错锁的备执行节点执行执行任务,并在执行任务完成后释放第二容错锁;
步骤d),未竞争得到第二容错锁的备执行节点阻塞直到得到第二容错锁。
本发明实施例通过将执行节点进行多机部署,并基于中间件来实现多个执行节点的信息共享问题,只有拿到第二容错锁的执行节点才可以执行对应的执行任务,一个执行节点异常的时候另一个备用的执行节点可以迅速的知道并且竞争该第二容错锁,以便接管该执行任务,实现了较高的容错机制,系统稳定性好。
图6为本发明实施例提供的一种分布式任务调度方法流程示意图。该方法应用于中间件(例如,图1中所示的zookeeper节点)。如图6所示,该方法包括:
S610,基于多个调度节点的注册信息,确定调度任务的第一主调度节点,并将第一主调度节点与调度任务对应的第一容错锁进行绑定。该多个调度节点中除第一主调度节点以外的调度节点作为备调度节点;
该多个调度节点可以注册到中间件,中间件可以基于各个调度节点的注册信息分配调度任务的第一容错锁。
S620,对主调度节点进行监听;
例如,对于以zookeeper机制实现的中间件可以通过watcher机制进行监听。该watcher机制可以在监听到路径有变化(例如,到主调度节点的路径不同、或者主调度节点无响应)时,中间件会通知所有备调度节点。
S630,如果确定主调度节点异常,则将第一容错锁与调度任务解绑,并向调度任务的备调度节点发送主调度节点异常事件;
各个备调度节点在确定主调度节点异常事件后,可以向中间件发起挑战,以便对未绑定的第一容错锁进行竞争。中间件基于各个备调度节点的挑战信息,从备调度节点中确定第二主调度节点,并将第一容错锁与第二主调度节点进行绑定。该挑战信息可以为注册信息,可以确定序号排名第一为第二主调度节点。
在一些实施例中,执行节点也可以进行多机部署,此时,还可以对主执行节点进行监听,具体的,该方法还可以包括如下步骤:
S640,基于多个执行节点的注册信息,对执行任务的第一主执行节点进行监听,第一主执行节点对应有多个备执行节点,第一主执行节点与执行任务的第二容错锁绑定;
该主执行节点和该多个备执行节点可以由主调度节点确定。也可以是主调度节点多个执行节点,该多个执行节点可以向中间件竞争第二容错锁,确定主执行节点和备执行节点。该多个执行节点需要在中间件中进行注册。
S650,如果确定主执行节点异常,则将第二容错锁与执行任务解绑,并向执行任务的备执行节点发送主执行节点异常事件;
S660,从备执行节点中确定第二主执行节点,并将第二容错锁与第二主执行节点进行绑定。
各个备执行节点在确定主执行节点异常事件后,可以向中间件发起挑战,以便对未绑定的第二容错锁进行竞争。中间件基于各个备执行节点的挑战信息,从备执行节点中确定第二主执行节点,并将第二容错锁与第二主执行节点进行绑定。该挑战信息可以为注册信息,可以确定序号排名第一为第二主执行节点。
本发明实施例通过将调度节点或者执行节点进行多机部署,并基于中间件来实现多个执行节点或多个调度节点的信息共享问题,只有拿到容错锁的执行节点或调度节点才可以执行对应的任务,一个执行节点或调度节点异常的时候另一个备用的执行节点或调度节点可以迅速的知道并且竞争相应的容错锁,以便接管该容错锁对应的任务,实现了较高的容错机制,系统稳定性好。
图7为本发明实施例提供的一种分布式任务调度装置结构示意图。如图7所示,该装置包括:
监听模块701,用于对中间件中的调度任务的事件进行监听,其中,所述调度任务对应有第一容错锁,与所述第一容错锁绑定的调度节点为主调度节点,调度节点集群中除所述主调度节点以外的调度节点作为备调度节点;
请求模块702,用于如果监听到调度任务的主调度节点异常事件,则向中间件请求第一容错锁;
执行模块703,用于如果得到第一容错锁,则基于第一容错锁在数据库中确定第一容错锁对应的调度任务,并执行调度任务。
在一些实施例中,执行模块703具体用于:基于所述调度任务确定执行任务以及执行节点;指示所述执行节点执行所述执行任务。
其中,所述执行节点可以为多个,该多个执行节点中的一个为主执行节点,其他为备执行节点;所述指示所述执行节点执行所述执行任务包括:指示所述主执行节点执行所述执行任务。
本申请实施例提供的分布式任务调度装置,与上述图2所示的实施例提供的分布式任务调度方法具有相同的技术特征,所以也能解决相同的技术问题,达到相同的技术效果。
图8为本发明实施例提供的另一种分布式任务调度装置结构示意图。如图8所示,该装置包括:
监听模块801,对中间件中的执行任务的事件进行监听,其中,执行任务对应有第二容错锁,与第二容错锁绑定的执行节点作为主执行节点,执行任务对应有多个备执行节点;
请求模块802,如果监听到执行任务的主执行节点异常事件,则向中间件请求第二容错锁;
执行模块803,如果得到第二容错锁,则基于第二容错锁执行执行任务。
在一些实施例中,还包括:
释放模块,用于当执行任务执行完成时释放第二容错锁。
本申请实施例提供的分布式任务调度装置,与上述图4所示的实施例提供的分布式任务调度方法具有相同的技术特征,所以也能解决相同的技术问题,达到相同的技术效果。
图9为本发明实施例提供的另一种分布式任务调度装置结构示意图。如图9所示,该装置包括:
确定模块901,用于基于多个调度节点的注册信息,确定调度任务的第一主调度节点,并将第一主调度节点与调度任务对应的第一容错锁进行绑定,多个调度节点中除第一主调度节点以外的调度节点作为备调度节点;
监听模块902,用于对主调度节点进行监听;
发送模块903,用于如果确定主调度节点异常,则将第一容错锁与调度任务解绑,并向调度任务的备调度节点发送主调度节点异常事件;
绑定模块904,用于从备调度节点中确定第二主调度节点,并将第一容错锁与第二主调度节点进行绑定。
在一些实施例中,监听模块902还用于,基于多个执行节点的注册信息,对执行任务的第一主执行节点进行监听,第一主执行节点对应有多个备执行节点,第一主执行节点与执行任务的第二容错锁绑定;
发送模块903还用于,如果确定主执行节点异常,则将第二容错锁与执行任务解绑,并向执行任务的备执行节点发送主执行节点异常事件;
绑定模块904还用于,从备执行节点中确定第二主执行节点,并将第二容错锁与第二主执行节点进行绑定。
本申请实施例提供的分布式任务调度装置,与上述图6所示的实施例提供的分布式任务调度方法具有相同的技术特征,所以也能解决相同的技术问题,达到相同的技术效果。
本发明实施例还提供一种分布式任务调度系统。例如图1所示的系统。该系统可以包括:
中间件,用于基于多个调度节点的注册信息,确定调度任务的第一主调度节点,并将第一主调度节点与调度任务对应的第一容错锁进行绑定,多个调度节点中除第一主调度节点以外的调度节点作为备调度节点;对主调度节点进行监听;如果确定主调度节点异常,则将第一容错锁与调度任务解绑,并向调度任务的备调度节点发送主调度节点异常事件;从备调度节点中确定第二主调度节点,并将第一容错锁与第二主调度节点进行绑定;
调度节点,用于对中间件中的调度任务的事件进行监听,其中,调度任务对应有第一容错锁,与第一容错锁绑定的调度节点为主调度节点,调度节点集群中除主调度节点以外的调度节点作为备调度节点;如果监听到调度任务的主调度节点异常事件,则向中间件请求第一容错锁;如果得到第一容错锁,则基于第一容错锁在数据库中确定第一容错锁对应的调度任务,并执行调度任务;
执行节点,用于对中间件中的执行任务的事件进行监听,其中,执行任务对应有第二容错锁,与第二容错锁绑定的执行节点作为主执行节点,执行任务对应有多个备执行节点;如果监听到执行任务的主执行节点异常事件,则向中间件请求第二容错锁;如果得到第二容错锁,则基于第二容错锁执行执行任务。
其中,该中间件可以基于zookeeper机制或etcd机制管理所述第一容错锁和所述第二容错锁。
如图10所示,本申请实施例提供的一种计算机设备1000,包括:处理器1001、存储器1002和总线,所述存储器1002存储有所述处理器1001可执行的机器可读指令,当电子设备运行时,所述处理器1001与所述存储器1002之间通过总线通信,所述处理器1001执行所述机器可读指令,以执行如上述分布式任务调度方法的步骤。
具体地,上述存储器1002和处理器1001能够为通用的存储器和处理器,这里不做具体限定,当处理器1001运行存储器1002存储的计算机程序时,能够执行上述分布式任务调度方法。
对应于上述分布式任务调度方法,本申请实施例还提供了一种计算机可读存储介质,所述计算机可读存储介质存储有机器可运行指令,所述计算机可运行指令在被处理器调用和运行时,所述计算机可运行指令促使所述处理器运行上述分布式任务调度方法的步骤。
本申请实施例所提供的分布式任务调度装置可以为设备上的特定硬件或者安装于设备上的软件或固件等。本申请实施例所提供的装置,其实现原理及产生的技术效果和前述方法实施例相同,为简要描述,装置实施例部分未提及之处,可参考前述方法实施例中相应内容。所属领域的技术人员可以清楚地了解到,为描述的方便和简洁,前述描述的系统、装置和单元的具体工作过程,均可以参考上述方法实施例中的对应过程,在此不再赘述。
在本申请所提供的实施例中,应该理解到,所揭露装置和方法,可以通过其它的方式实现。以上所描述的装置实施例仅仅是示意性的,例如,所述单元的划分,仅仅为一种逻辑功能划分,实际实现时可以有另外的划分方式,又例如,多个单元或组件可以结合或者可以集成到另一个系统,或一些特征可以忽略,或不执行。另一点,所显示或讨论的相互之间的耦合或直接耦合或通信连接可以是通过一些通信接口,装置或单元的间接耦合或通信连接,可以是电性,机械或其它的形式。
所述作为分离部件说明的单元可以是或者也可以不是物理上分开的,作为单元显示的部件可以是或者也可以不是物理单元,即可以位于一个地方,或者也可以分布到多个网络单元上。可以根据实际的需要选择其中的部分或者全部单元来实现本实施例方案的目的。
在本申请所提供的几个实施例中,应该理解到,所揭露的装置和方法,也可以通过其它的方式实现。以上所描述的装置实施例仅仅是示意性的,例如,附图中的流程图和框图显示了根据本申请的多个实施例的装置、方法和计算机程序产品的可能实现的体系架构、功能和操作。在这点上,流程图或框图中的每个方框可以代表一个模块、程序段或代码的一部分,所述模块、程序段或代码的一部分包含一个或多个用于实现规定的逻辑功能的可执行指令。也应当注意,在有些作为替换的实现方式中,方框中所标注的功能也可以以不同于附图中所标注的顺序发生。例如,两个连续的方框实际上可以基本并行地执行,它们有时也可以按相反的顺序执行,这依所涉及的功能而定。也要注意的是,框图和/或流程图中的每个方框、以及框图和/或流程图中的方框的组合,可以用执行规定的功能或动作的专用的基于硬件的系统来实现,或者可以用专用硬件与计算机指令的组合来实现。
另外,在本申请提供的实施例中的各功能单元可以集成在一个处理单元中,也可以是各个单元单独物理存在,也可以两个或两个以上单元集成在一个单元中。
所述功能如果以软件功能单元的形式实现并作为独立的产品销售或使用时,可以存储在一个计算机可读取存储介质中。基于这样的理解,本申请的技术方案本质上或者说对现有技术做出贡献的部分或者该技术方案的部分可以以软件产品的形式体现出来,该计算机软件产品存储在一个存储介质中,包括若干指令用以使得一台计算机设备(可以是个人计算机,服务器,或者网络设备等)执行本申请各个实施例所述移动控制方法的全部或部分步骤。而前述的存储介质包括:U盘、移动硬盘、只读存储器(Read-Only Memory,简称ROM)、随机存取存储器(Random Access Memory,简称RAM)、磁碟或者光盘等各种可以存储程序代码的介质。
应注意到:相似的标号和字母在下面的附图中表示类似项,因此,一旦某一项在一个附图中被定义,则在随后的附图中不需要对其进行进一步定义和解释,此外,术语“第一”、“第二”、“第三”等仅用于区分描述,而不能理解为指示或暗示相对重要性。
最后应说明的是:以上所述实施例,仅为本申请的具体实施方式,用以说明本申请的技术方案,而非对其限制,本申请的保护范围并不局限于此,尽管参照前述实施例对本申请进行了详细的说明,本领域的普通技术人员应当理解:任何熟悉本技术领域的技术人员在本申请揭露的技术范围内,其依然可以对前述实施例所记载的技术方案进行修改或可轻易想到变化,或者对其中部分技术特征进行等同替换;而这些修改、变化或者替换,并不使相应技术方案的本质脱离本申请实施例技术方案的范围。都应涵盖在本申请的保护范围之内。
Claims (11)
1.一种分布式任务调度方法,其特征在于,包括:
对中间件中的调度任务的事件进行监听,其中,所述调度任务对应有第一容错锁,与所述第一容错锁绑定的调度节点为主调度节点,调度节点集群中除所述主调度节点以外的调度节点作为备调度节点;
如果监听到所述调度任务的主调度节点异常事件,则向所述中间件请求所述第一容错锁;
如果得到所述第一容错锁,则基于所述第一容错锁在数据库中确定所述第一容错锁对应的所述调度任务,并执行所述调度任务。
2.根据权利要求1所述的方法,其特征在于,执行所述调度任务的步骤,包括:
基于所述调度任务确定执行任务以及执行节点;
指示所述执行节点执行所述执行任务。
3.根据权利要求2所述的方法,其特征在于,所述执行节点为多个,该多个执行节点中的一个为主执行节点,其他为备执行节点;所述指示所述执行节点执行所述执行任务包括:指示所述主执行节点执行所述执行任务。
4.一种分布式任务调度方法,其特征在于,包括:
对中间件中的执行任务的事件进行监听,其中,所述执行任务对应有第二容错锁,与所述第二容错锁绑定的执行节点作为主执行节点,所述执行任务对应有多个备执行节点;
如果监听到所述执行任务的主执行节点异常事件,则向所述中间件请求所述第二容错锁;
如果得到所述第二容错锁,则基于所述第二容错锁执行所述执行任务。
5.根据权利要求4所述的方法,其特征在于,还包括:
当所述执行任务执行完成时释放所述第二容错锁。
6.一种分布式任务调度方法,其特征在于,包括:
基于多个调度节点的注册信息,确定调度任务的第一主调度节点,并将所述第一主调度节点与所述调度任务对应的第一容错锁进行绑定,所述多个调度节点中除第一主调度节点以外的调度节点作为备调度节点;
对所述主调度节点进行监听;
如果确定所述主调度节点异常,则将所述第一容错锁与所述调度任务解绑,并向所述调度任务的备调度节点发送主调度节点异常事件;
从所述备调度节点中确定第二主调度节点,并将所述第一容错锁与所述第二主调度节点进行绑定。
7.根据权利要求6所述的方法,其特征在于,还包括:
基于多个执行节点的注册信息,对执行任务的第一主执行节点进行监听,所述第一主执行节点对应有多个备执行节点,所述第一主执行节点与所述执行任务的第二容错锁绑定;
如果确定所述主执行节点异常,则将所述第二容错锁与所述执行任务解绑,并向所述执行任务的备执行节点发送主执行节点异常事件;
从所述备执行节点中确定第二主执行节点,并将所述第二容错锁与所述第二主执行节点进行绑定。
8.一种分布式任务调度系统,其特征在于,包括:
中间件,用于基于多个调度节点的注册信息,确定调度任务的第一主调度节点,并将所述第一主调度节点与所述调度任务对应的第一容错锁进行绑定,所述多个调度节点中除所述第一主调度节点以外的调度节点作为备调度节点;对所述主调度节点进行监听;如果确定所述主调度节点异常,则将所述第一容错锁与所述调度任务解绑,并向所述调度任务的备调度节点发送主调度节点异常事件;从所述备调度节点中确定第二主调度节点,并将所述第一容错锁与所述第二主调度节点进行绑定;
调度节点,用于对中间件中的调度任务的事件进行监听,其中,所述调度任务对应有第一容错锁,与所述第一容错锁绑定的调度节点为主调度节点,调度节点集群中除主调度节点以外的调度节点作为备调度节点;如果监听到所述调度任务的主调度节点异常事件,则向所述中间件请求所述第一容错锁;如果得到所述第一容错锁,则基于所述第一容错锁在数据库中确定所述第一容错锁对应的所述调度任务,并执行所述调度任务;
执行节点,用于对中间件中的执行任务的事件进行监听,其中,所述执行任务对应有第二容错锁,与所述第二容错锁绑定的执行节点作为主执行节点,所述执行任务对应有多个备执行节点;如果监听到所述执行任务的主执行节点异常事件,则向所述中间件请求所述第二容错锁;如果得到所述第二容错锁,则基于所述第二容错锁执行所述执行任务。
9.根据权利要求8所述的系统,其特征在于,所述中间件基于zookeeper机制或etcd机制管理所述第一容错锁和所述第二容错锁。
10.一种计算机设备,包括存储器、处理器,所述存储器中存储有可在所述处理器上运行的计算机程序,其特征在于,所述处理器执行所述计算机程序时实现上述权利要求1至7任一项所述的方法的步骤。
11.一种计算机可读存储介质,其特征在于,所述计算机可读存储介质存储有机器可运行指令,所述计算机可运行指令在被处理器调用和运行时,所述计算机可运行指令促使所述处理器运行所述权利要求1至7任一项所述的方法。
Priority Applications (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN202010822861.3A CN111970148A (zh) | 2020-08-14 | 2020-08-14 | 分布式任务调度方法及系统 |
Applications Claiming Priority (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN202010822861.3A CN111970148A (zh) | 2020-08-14 | 2020-08-14 | 分布式任务调度方法及系统 |
Publications (1)
Publication Number | Publication Date |
---|---|
CN111970148A true CN111970148A (zh) | 2020-11-20 |
Family
ID=73387984
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
CN202010822861.3A Pending CN111970148A (zh) | 2020-08-14 | 2020-08-14 | 分布式任务调度方法及系统 |
Country Status (1)
Country | Link |
---|---|
CN (1) | CN111970148A (zh) |
Cited By (6)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN112527489A (zh) * | 2020-12-22 | 2021-03-19 | 税友软件集团股份有限公司 | 一种任务调度方法、装置、设备及计算机可读存储介质 |
CN112615912A (zh) * | 2020-12-11 | 2021-04-06 | 中国建设银行股份有限公司 | 一种节点调度处理方法、装置及存储介质 |
CN112860413A (zh) * | 2021-03-29 | 2021-05-28 | 中信银行股份有限公司 | 一种集中式作业调度系统、装置、电子设备及计算机可读存储介质 |
CN114666389A (zh) * | 2022-03-14 | 2022-06-24 | 京东科技信息技术有限公司 | 分布式系统中节点状态的检测方法、装置及计算机设备 |
CN116405509A (zh) * | 2023-06-09 | 2023-07-07 | 深圳前海环融联易信息科技服务有限公司 | 分布式监听方法及其计算机设备、存储介质 |
CN116991591A (zh) * | 2023-09-25 | 2023-11-03 | 腾讯科技(深圳)有限公司 | 一种数据调度方法、装置及存储介质 |
Citations (5)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN101273333A (zh) * | 2005-04-13 | 2008-09-24 | 普罗格雷斯软件公司 | 容错分布式锁定管理 |
CN103780655A (zh) * | 2012-10-24 | 2014-05-07 | 阿里巴巴集团控股有限公司 | 一种消息传递接口任务和资源调度系统及方法 |
US20180373750A1 (en) * | 2017-06-21 | 2018-12-27 | Alibaba Group Holding Limited | Allocation method and device for a distributed lock |
CN109639794A (zh) * | 2018-12-10 | 2019-04-16 | 杭州数梦工场科技有限公司 | 一种有状态集群恢复方法、装置、设备及可读存储介质 |
CN111338773A (zh) * | 2020-02-21 | 2020-06-26 | 华云数据有限公司 | 一种分布式定时任务调度方法、调度系统及服务器集群 |
-
2020
- 2020-08-14 CN CN202010822861.3A patent/CN111970148A/zh active Pending
Patent Citations (5)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN101273333A (zh) * | 2005-04-13 | 2008-09-24 | 普罗格雷斯软件公司 | 容错分布式锁定管理 |
CN103780655A (zh) * | 2012-10-24 | 2014-05-07 | 阿里巴巴集团控股有限公司 | 一种消息传递接口任务和资源调度系统及方法 |
US20180373750A1 (en) * | 2017-06-21 | 2018-12-27 | Alibaba Group Holding Limited | Allocation method and device for a distributed lock |
CN109639794A (zh) * | 2018-12-10 | 2019-04-16 | 杭州数梦工场科技有限公司 | 一种有状态集群恢复方法、装置、设备及可读存储介质 |
CN111338773A (zh) * | 2020-02-21 | 2020-06-26 | 华云数据有限公司 | 一种分布式定时任务调度方法、调度系统及服务器集群 |
Cited By (10)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN112615912A (zh) * | 2020-12-11 | 2021-04-06 | 中国建设银行股份有限公司 | 一种节点调度处理方法、装置及存储介质 |
CN112615912B (zh) * | 2020-12-11 | 2022-07-12 | 中国建设银行股份有限公司 | 一种节点调度处理方法、装置及存储介质 |
CN112527489A (zh) * | 2020-12-22 | 2021-03-19 | 税友软件集团股份有限公司 | 一种任务调度方法、装置、设备及计算机可读存储介质 |
CN112860413A (zh) * | 2021-03-29 | 2021-05-28 | 中信银行股份有限公司 | 一种集中式作业调度系统、装置、电子设备及计算机可读存储介质 |
CN114666389A (zh) * | 2022-03-14 | 2022-06-24 | 京东科技信息技术有限公司 | 分布式系统中节点状态的检测方法、装置及计算机设备 |
CN114666389B (zh) * | 2022-03-14 | 2024-05-17 | 京东科技信息技术有限公司 | 分布式系统中节点状态的检测方法、装置及计算机设备 |
CN116405509A (zh) * | 2023-06-09 | 2023-07-07 | 深圳前海环融联易信息科技服务有限公司 | 分布式监听方法及其计算机设备、存储介质 |
CN116405509B (zh) * | 2023-06-09 | 2023-09-01 | 深圳前海环融联易信息科技服务有限公司 | 分布式监听方法及其计算机设备、存储介质 |
CN116991591A (zh) * | 2023-09-25 | 2023-11-03 | 腾讯科技(深圳)有限公司 | 一种数据调度方法、装置及存储介质 |
CN116991591B (zh) * | 2023-09-25 | 2024-01-09 | 腾讯科技(深圳)有限公司 | 一种数据调度方法、装置及存储介质 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
CN111970148A (zh) | 分布式任务调度方法及系统 | |
US9208029B2 (en) | Computer system to switch logical group of virtual computers | |
CN103414712B (zh) | 一种分布式虚拟桌面管理系统和方法 | |
US20130103835A1 (en) | Resource management method, resource management device, and program product | |
CN105468450A (zh) | 任务调度方法及系统 | |
CN111290834A (zh) | 一种基于云管理平台实现业务高可用的方法、装置及设备 | |
JP2010503074A5 (zh) | ||
JPH10214199A (ja) | プロセスリスタート方法およびプロセスリスタートを実現するためのシステム | |
CN110895484A (zh) | 任务调度方法及装置 | |
CN110895487B (zh) | 分布式任务调度系统 | |
Bhat et al. | Practical task allocation for software fault-tolerance and its implementation in embedded automotive systems | |
CN109445927B (zh) | 一种存储集群的任务管理方法及装置 | |
CN110704185B (zh) | 集群系统分片定时任务调度方法及集群系统 | |
CN111901422A (zh) | 一种集群中节点的管理方法、系统及装置 | |
CN110895488B (zh) | 任务调度方法及装置 | |
CN111459639B (zh) | 一种支持全球多机房部署的分布式任务管理平台及方法 | |
CN110895483A (zh) | 任务恢复方法及装置 | |
CN110895486B (zh) | 分布式任务调度系统 | |
CN112631764A (zh) | 任务调度方法、装置、计算机设备和计算机可读介质 | |
CN115951983A (zh) | 任务调度方法、装置、系统和电子设备 | |
CN114064217B (zh) | 一种基于OpenStack的节点虚拟机迁移方法及装置 | |
CN112865995B (zh) | 分布式主从系统 | |
CN106815318B (zh) | 一种时序数据库的集群化方法及系统 | |
CN111158956A (zh) | 一种集群系统的数据备份方法及相关装置 | |
CN110688211A (zh) | 一种分布式作业调度方法 |
Legal Events
Date | Code | Title | Description |
---|---|---|---|
PB01 | Publication | ||
PB01 | Publication | ||
SE01 | Entry into force of request for substantive examination | ||
SE01 | Entry into force of request for substantive examination | ||
RJ01 | Rejection of invention patent application after publication | ||
RJ01 | Rejection of invention patent application after publication |
Application publication date: 20201120 |