CN113377535A - 分布式定时任务分配方法、装置、设备及可读存储介质 - Google Patents
分布式定时任务分配方法、装置、设备及可读存储介质 Download PDFInfo
- Publication number
- CN113377535A CN113377535A CN202110638499.9A CN202110638499A CN113377535A CN 113377535 A CN113377535 A CN 113377535A CN 202110638499 A CN202110638499 A CN 202110638499A CN 113377535 A CN113377535 A CN 113377535A
- Authority
- CN
- China
- Prior art keywords
- node
- distributed
- agent
- task allocation
- allocation method
- 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 63
- 238000013500 data storage Methods 0.000 claims abstract description 43
- 230000001052 transient effect Effects 0.000 claims description 44
- 230000036541 health Effects 0.000 claims description 25
- 230000003862 health status Effects 0.000 claims description 14
- 230000002085 persistent effect Effects 0.000 claims description 14
- 238000000605 extraction Methods 0.000 claims description 5
- 238000012544 monitoring process Methods 0.000 claims description 5
- 238000005516 engineering process Methods 0.000 description 9
- 230000008569 process Effects 0.000 description 8
- 238000004891 communication Methods 0.000 description 6
- 238000004590 computer program Methods 0.000 description 6
- 238000012546 transfer Methods 0.000 description 4
- 230000005484 gravity Effects 0.000 description 3
- 230000007547 defect Effects 0.000 description 2
- 238000011161 development Methods 0.000 description 2
- 238000010586 diagram Methods 0.000 description 2
- 239000000284 extract Substances 0.000 description 2
- 230000006870 function Effects 0.000 description 2
- 230000002159 abnormal effect Effects 0.000 description 1
- 238000013473 artificial intelligence Methods 0.000 description 1
- 238000001514 detection method Methods 0.000 description 1
- 238000012423 maintenance Methods 0.000 description 1
- 238000007726 management method Methods 0.000 description 1
- 238000012986 modification Methods 0.000 description 1
- 230000004048 modification Effects 0.000 description 1
- 239000000725 suspension Substances 0.000 description 1
Images
Classifications
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F9/00—Arrangements for program control, e.g. control units
- G06F9/06—Arrangements for program control, e.g. control units using stored programs, i.e. using an internal store of processing equipment to receive or retain programs
- G06F9/46—Multiprogramming arrangements
- G06F9/50—Allocation of resources, e.g. of the central processing unit [CPU]
- G06F9/5083—Techniques for rebalancing the load in a distributed system
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F9/00—Arrangements for program control, e.g. control units
- G06F9/06—Arrangements for program control, e.g. control units using stored programs, i.e. using an internal store of processing equipment to receive or retain programs
- G06F9/46—Multiprogramming arrangements
- G06F9/48—Program initiating; Program switching, e.g. by interrupt
- G06F9/4806—Task transfer initiation or dispatching
- G06F9/4843—Task transfer initiation or dispatching by program, e.g. task dispatcher, supervisor, operating system
- G06F9/4881—Scheduling strategies for dispatcher, e.g. round robin, multi-level priority queues
Landscapes
- Engineering & Computer Science (AREA)
- Software Systems (AREA)
- Theoretical Computer Science (AREA)
- Physics & Mathematics (AREA)
- General Engineering & Computer Science (AREA)
- General Physics & Mathematics (AREA)
- Computer And Data Communications (AREA)
Abstract
本申请公开了一种分布式定时任务分配方法,所述分布式定时任务分配方法包括:通过主节点收集待执行任务以及提取各代理节点对应的节点数据存储路径下记录的定时任务执行信息,其中,所述主节点和各所述代理节点通过调用预设协调服务,在所述分布式集群的各分布式应用对应的注册节点中进行选举确定;基于各所述定时任务执行信息,分别计算各所述代理节点对应的当前节点负载;基于各所述当前节点负载在各所述代理节点中选取目标代理节点,将所述待执行任务分配至所述目标代理节点对应的分布式应用。本申请解决了分布式集群部署定时任务服务时分布式机器负载不均衡的技术问题。
Description
技术领域
本申请涉及金融科技(Fintech)的计算机技术领域,尤其涉及一种分布式定时任务分配方法、装置、设备及可读存储介质。
背景技术
随着金融科技,尤其是互联网科技金融的不断发展,越来越多的技术(如分布式、人工智能等)应用在金融领域,但金融业也对技术提出了更高的要求,如对金融业对应待办事项的分发也有更高的要求。
随着计算机技术的不断发展,计算机技术的应用领域也越来越广泛,目前,在日常生活、系统运维、告警和通知等各个场景均存在定时执行某项任务的需求,而在分布式集群中,通常基于对分布式锁的争抢来实现分布式集群部署中的定时任务分配,但是,由于分布式集群中的分布式应用争抢到分布锁的概率无法确定,存在负载高的分布式应用争抢到分布式锁的情况,进而导致分布式应用的负载不均衡,所以,分布式任务分配时存在分布式机器负载不均衡的问题。
发明内容
本申请的主要目的在于提供一种分布式定时任务分配方法、装置、设备及可读存储介质,旨在解决现有技术中分布式集群部署定时任务服务时分布式机器负载不均衡的技术问题。
为实现上述目的,本申请提供一种分布式定时任务分配方法,所述分布式定时任务分配方法应用于分布式定时任务分配设备,所述分布式定时任务分配方法包括:
通过主节点收集待执行任务以及提取各代理节点对应的节点数据存储路径下记录的定时任务执行信息,其中,所述主节点和各所述代理节点通过调用预设协调服务,在所述分布式集群的各分布式应用对应的注册节点中进行选举确定;
基于各所述定时任务执行信息,分别计算各所述代理节点对应的当前节点负载;
基于各所述当前节点负载在各所述代理节点中选取目标代理节点,将所述待执行任务分配至所述目标代理节点对应的分布式应用。
本申请还提供一种分布式定时任务分配装置,所述分布式定时任务分配装置为虚拟装置,且所述分布式定时任务分配装置应用于分布式定时任务分配设备,所述分布式定时任务分配装置包括:
提取模块,通过主节点收集待执行任务以及提取各代理节点对应的节点数据存储路径下记录的定时任务执行信息,其中,所述主节点和各所述代理节点通过调用预设协调服务,在所述分布式集群的各分布式应用对应的注册节点中进行选举确定;
计算模块,基于各所述定时任务执行信息,分别计算各所述代理节点对应的当前节点负载;
任务分配模块,基于各所述当前节点负载在各所述代理节点中选取目标代理节点,将所述待执行任务分配至所述目标代理节点对应的分布式应用。
本申请还提供一种分布式定时任务分配设备,所述分布式定时任务分配设备为实体设备,所述分布式定时任务分配设备包括:存储器、处理器以及存储在所述存储器上并可在所述处理器上运行的所述分布式定时任务分配方法的程序,所述分布式定时任务分配方法的程序被处理器执行时可实现如上述的分布式定时任务分配方法的步骤。
本申请还提供一种可读存储介质,所述可读存储介质上存储有实现分布式定时任务分配方法的程序,所述分布式定时任务分配方法的程序被处理器执行时实现如上述的分布式定时任务分配方法的步骤。
本申请还提供一种计算机程序产品,包括计算机程序,所述计算机程序被处理器执行时实现如上述的分布式定时任务分配方法的步骤。
本申请提供了一种分布式定时任务分配方法、装置、设备及可读存储介质,相比于现有技术采用的基于对分布式锁的争抢来实现对定时任务服务的分布式集群部署的技术手段,本申请首先通过主节点收集待执行任务以及提取各代理节点对应的节点数据存储路径下记录的定时任务执行信息,其中,所述主节点和各所述代理节点通过预设协调服务,在所述分布式集群的各分布式应用中进行选取,进而实现了基于预设协调服务,将各分布式应用划分为主节点和各代理节点的目的,进而可实现将各代理节点对应的任务执行信息存储至各自对应的节点存储路径中,进一步地,基于各所述定时任务执行信息,分别计算各所述代理节点对应的当前节点负载,进而基于各所述当前节点负载在各所述代理节点中选取目标代理节点,将所述待执行任务分配至所述目标代理节点对应的分布式应用,实现了依据各分布式应用的实时负载,合理地为分布式应用均衡分配定时任务的目的,使得各分布式应用的负载均衡,所以,克服了现有技术中由于分布式集群中的分布式应用争抢到分布锁的概率无法确定,存在负载高的分布式应用争抢到分布式锁的情况,而导致分布式应用的负载不均衡的技术缺陷,所以,解决了分布式定时任务分配时分布式机器负载不均衡的问题,实现了分布式集群中的各个应用的负载均衡。
附图说明
此处的附图被并入说明书中并构成本说明书的一部分,示出了符合本申请的实施例,并与说明书一起用于解释本申请的原理。
为了更清楚地说明本申请实施例或现有技术中的技术方案,下面将对实施例或现有技术描述中所需要使用的附图作简单地介绍,显而易见地,对于本领域普通技术人员而言,在不付出创造性劳动性的前提下,还可以根据这些附图获得其他的附图。
图1为本申请分布式定时任务分配方法第一实施例的流程示意图;
图2为本申请分布式定时任务分配方法第二实施例的流程示意图;
图3为本申请分布式定时任务分配方法中创建所述主节点和各所述代理节点的流程示意图;
图4为本申请实施例方案涉及的硬件运行环境的设备结构示意图。
本申请目的实现、功能特点及优点将结合实施例,参照附图做进一步说明。
具体实施方式
应当理解,此处所描述的具体实施例仅用以解释本申请,并不用于限定本申请。
首先,应当理解的是,在分布式集群中,目前通常基于对分布式锁的争抢来实现分布式集群部署中的定时任务分配,而由于分布式集群中的分布式应用争抢到分布锁的概率无法确定,如果抢到分布式锁的分布式设备的负载较高,则会导致负载更高,从而引发分布式设备的性能问题,导致系统宕机、进程挂起等故障,再者,由于目前的分布式集群的管理通常严格依赖服务器时间,若服务器时间不一致,则容易导致定时任务的重复执行,而在很多场景比如支付、货物发放等场景下重复执行则会导致巨大损失。
本申请实施例提供一种分布式定时任务分配方法,在本申请分布式定时任务分配方法的第一实施例中,所述分布式定时任务分配方法应用于分布式集群,参照图1,所述分布式定时任务分配方法包括:
步骤S10,通过主节点收集待执行任务以及提取各代理节点对应的节点数据存储路径下记录的定时任务执行信息,其中,所述主节点和各所述代理节点通过调用预设协调服务,在所述分布式集群的各分布式应用对应的注册节点中进行选举确定;
在本实施例中,需要说明的是,所述预设协调服务为用于对应用程序进行选主以及具备事件通知功能的服务,可选地,所述预设协调服务可以为Zookeeper,Zookeeper为分布式的且开放源码的分布式应用程序协调服务,用于为分布式应用提供一致性服务,具有支持应用程序的选主、通知等功能,所述分布式应用为定时任务应用,用于执行分布式定时任务,其中,各所述分布式应用分别部署在所述分布式集群中不同的分布式应用上。
另外地,需要说明的是,在通过主节点收集各待执行任务之前,在Zookeeper集群中创建一个Zookeeper的持久父节点,进而各所述分布式应用在Zookeeper的持久父节点下创建短暂子节点,以实现各分布式应用在Zookeeper上争抢注册主节点,而未注册主节点的分布式应用将注册代理节点或者备选节点,其中,所述主节点负责任务收集、任务调度与消息收集与分发、日志以及通知等任务,所述代理节点负责执行主节点调度的任务,并告知主节点任务执行结果,所述备用节点为代理节点的观察者,且当代理节点异常或宕机时接管代理节点,成为新的代理节点,且分布式应用在Zookeeper下注册的节点均可以作为主节点、代理节点或备用节点。
另外地,需要说明是,所述主节点、所述代理节点以及所述备用节点在Zookeeper下均存在对应的节点数据存储路径,用于存储对应节点执行任务时的信息,例如,任务执行数量和任务执行时间等信息,进而实现了在分布式集群下部署多个任务节点的目的,其中,所述主节点和各所述代理节点的节点数据存储路径均属于同一共享数据库,进而实现了任务节点之间采用共享数据库的方式管理同一批定时任务的目的,且可以利用数据库排它锁的方式保证同一定时任务达到触发条件时只有一个代理节点去执行该任务,避免了定时任务的重复执行,提升了定时任务执行和分配的效率。
通过主节点收集待执行任务以及提取各代理节点对应的节点数据存储路径下记录的定时任务执行信息,其中,所述主节点和各所述代理节点通过调用预设协调服务,在所述分布式集群的各分布式应用对应的注册节点中进行选举确定,具体地,调度主节点收集定时任务触发信息,以采集预设时间长度内的待执行任务,其中,所述待执行任务为在预设时间长度后需要执行的定时任务,进而提取各代理节点对应的节点数据存储路径下记录的定时任务执行信息,其中,所述定时任务执行信息为已经分配至各代理节点的定时任务信息,例如,定时任务的数量和定时任务的执行时间等,其中,所述主节点和各所述代理节点通过调用预设协调服务,在所述分布式集群的各分布式应用对应的注册节点中进行选举确定,所述预设协调服务可以设置为Zookeeper,其中,需要说明的是,在各分布式应用启动时,将通过Zookeeper在Zookeeper下创建一持久父节点,而所述注册节点为各分布式应用在所述持久父节点下注册的短暂子节点,而所述主节点和各所述代理节点即在各所述短暂子节点中选取。
另外地,需要说明的是,对于单个定时任务,现有技术中通常在各分布式应用中选取一目标应用执行该单个定时任务,进而每产生一单个定时任务,则均需要在各分布式应用中进行一次目标应用的选举过程,且每次选举的目标应用均可能不同,影响定时任务分配的效率,而本申请实施例中,基于Zookeeper,在定时任务应用中进行选主,得到分布式定时任务应用对应的主节点和各代理节点,进而主节点可将产生的定时任务直接分配至各代理节点进行执行,而避免了每产生一单个定时任务,则均需要在各分布式应用中进行一次目标应用的选举过程的情况发生,所以,实现了定时任务应用的高可用,提升了定时任务分配的效率。
步骤S20,基于各所述定时任务执行信息,分别计算各所述代理节点对应的当前节点负载;
在本实施例中,需要说明的是,所述定时任务执行信息包括节点当前执行任务量,其中,所述节点当前执行任务量为代理节点在预设过去时间段内已执行的定时任务的数量,例如,过去3分钟内已执行的定时任务的数量或者过去5分钟内已执行的定时任务的数量等。
基于各所述定时任务执行信息,分别计算各所述代理节点对应的当前节点负载,具体地,获取各所述代理节点对应的定时任务分配比重,基于每一代理节点对应的定时任务分配比重和对应的节点当前执行任务量,计算每一代理节点对应的当前节点负载,其中,所述定时任务分配比重为代理节点对应的分布式应用在整个分布式集群中承担任务数量的比值,例如,假设存在2个代理节点A和代理节点B,则可设置代理节点A的定时任务分配比重为50%,设置代理节点B的定时任务分配比重也为50%。
进一步地,在步骤S20中,所述定时任务执行信息包括节点当前执行任务量,
所述基于各所述定时任务执行信息,分别计算各所述代理节点对应的当前节点负载的步骤包括:
步骤S21,获取各所述代理节点对应的定时任务分配比重;
在本实施例中,需要说明的是,所述定时任务分配比重可设置为系统总配置定时任务数和代理节点所承担的任务数量的比值,也可手动设置定时任务分配比重的大小,例如,假设系统总配置定时任务数为100,代理节点所承担的任务数量为50,则定时任务分配比重为50%。
步骤S22,基于各所述定时任务分配比重和各所述节点当前执行任务量,分别计算各所述代理节点对应的当前节点负载。
在本实施例中,获取各所述代理节点对应的定时任务分配比重,并计算每一所述代理节点对应的定时任务分配比重和对应的节点当前执行任务量之间的乘积,并各所述乘积分别作为对应的代理节点的当前节点负载,进而实现了依据各代理节点对应的节点当前执行任务量和对应的定时任务分配比重,实时计算各代理节点对应的当前节点负载,达到了准确计算各代理节点的当前节点负载的目的,进而依据各代理节点的实时负载,即可合理地为各分布式应用均衡分配定时任务。
步骤S30,基于各所述当前节点负载在各所述代理节点中选取目标代理节点,将所述待执行任务分配至所述目标代理节点对应的分布式应用。
在本实施例中,基于各所述当前节点负载在各所述代理节点中选取目标代理节点,将所述待执行任务分配至所述目标代理节点对应的分布式应用,具体地,基于各所述当前节点负载,在各所述代理节点中选取实时负载最少的代理节点作为目标代理节点,进而将所述待执行任务分配给所述目标代理节点对应的分布式应用,进而所述分布式应用在执行完待执行任务后,向主节点反馈任务完成情况,并更新目标代理节点对应的节点数据存储路径下的定时任务执行信息,进而实现了在分布式集群中基于各分布式应用的实时负载,为各分布式应用均衡分配定时任务的目的,而不是依赖于分布式机器对分布式锁的争抢来实现分配定时任务,进而使得各分布式应用在执行分布式定时任务时负载均衡,且由于每个待执行任务都是由主节点分配给单独的代理节点对应的分布式应用执行,进而本申请实施例中分布式集群的任务分配过程完全不依赖服务器时间,完全避免了定时任务重新执行的情况。
在步骤S30中,在所述基于各所述当前节点负载在各所述代理节点中选取目标代理节点,将所述待执行任务分配至所述目标代理节点对应的分布式应用的步骤之后,所述分布式定时任务分配方法还包括:
步骤S40,更新所述目标代理节点对应的节点数据存储路径下记录的定时任务执行信息。
在本实施例中,需要说明的是,所述定时任务执行信息包括节点当前执行任务量。
更新所述目标代理节点对应的节点数据存储路径下记录的定时任务执行信息,具体地,在给目标代理节点分配待执行任务之后,更新所述目标代理节点对应的节点数据存储路径下记录的节点当前执行任务量,以实现实时记录代理节点当前的执行任务数量,进而依据代理节点对应的节点当前执行任务量和对应的定时任务分配比重,即可实时计算各代理节点对应的当前节点负载。
进一步地,在所述目标代理节点对应的节点数据存储路径下更新所述待执行任务对应的任务执行记录,其中,所述任务执行记录用于记录待执行任务的任务执行结果,例如执行成功或者执行失败,并通过代理节点将任务执行记录反馈至主节点,所述主节点监控待执行任务的任务执行结果,且当任务执行结果为执行失败时,则对所述待执行任务重新执行步骤S10至步骤S30的过程,以保证待执行任务可以被成功执行,提升了待执行任务的执行成功率。
本申请实施例提供了一种分布式定时任务分配方法,相比于现有技术采用的基于对分布式锁的争抢来实现对定时任务服务的分布式集群部署的技术手段,本申请实施例首先通过主节点收集待执行任务以及提取各代理节点对应的节点数据存储路径下记录的定时任务执行信息,其中,所述主节点和各所述代理节点通过预设协调服务,在所述分布式集群的各分布式应用中进行选取,进而实现了基于预设协调服务,将各分布式应用划分为主节点和各代理节点的目的,进而可实现将各代理节点对应的任务执行信息存储至各自对应的节点存储路径中,进一步地,基于各所述定时任务执行信息,分别计算各所述代理节点对应的当前节点负载,进而基于各所述当前节点负载在各所述代理节点中选取目标代理节点,将所述待执行任务分配至所述目标代理节点对应的分布式应用,实现了依据各分布式应用的实时负载,合理地为分布式应用均衡分配定时任务的目的,使得各分布式应用的负载均衡,所以,克服了现有技术中由于分布式集群中的分布式应用争抢到分布锁的概率无法确定,存在负载高的分布式应用争抢到分布式锁的情况,而导致分布式应用的负载不均衡的技术缺陷,所以,解决了分布式定时任务分配时分布式机器负载不均衡的问题,实现了分布式集群中的各个应用的负载均衡。
进一步地,参照图2,基于本申请中的第一实施例,在本申请的另一实施例中,在所述通过主节点收集待执行任务以及提取各代理节点对应的节点数据存储路径下记录的定时任务执行信息,其中,所述主节点和各所述代理节点通过调用预设协调服务,在所述分布式集群的各分布式应用对应的注册节点中进行选举确定的步骤之前,所述分布式定时任务分配方法还包括:
步骤A10,通过所述预设协调服务创建持久父节点,通过所述预设协调服务创建持久父节点,通过各所述分布式应用分别在所述持久父节点下创建对应的各短暂子节点;
在本实施例中,需要说明的是,所述预设协调服务可以设置为Zookeeper。
通过所述预设协调服务创建持久父节点,具体地,当所述分布式应用启动时,通过调用Zookeeper创建Zookeeper节点中的持久父节点,其中,所述持久父节点为在断开连接不会删除的节点,并通过各所述分布式应用分别在所述持久父节点下创建对应的各短暂子节点,其中,所述短暂子节点为断开连接会删除的节点。
步骤A20,在各所述短暂子节点中选取所述主节点、各所述代理节点和各备选节点。
在本实施例中,在各所述短暂子节点中选取所述主节点、各所述代理节点和各备选节点,具体地,基于各所述短暂子节点对应的序列编号,在各所述短暂子节点中选取所述主节点、各所述代理节点和各备选节点,其中,所述序列编号为在注册各所述短暂子节点时产生的一序列的编号,如图3所示为本申请实施例中创建所述主节点和各所述代理节点的流程示意图,其中,定时任务应用为所述分布式应用,Master为所述主节点,Proxies为各所述代理节点,Znode/leader_001、Znode/leader_002和Znode/leader_003均为节点数据存储路径,SeqNum为节点的序列编号,创建所述主节点和各所述代理节点的过程具体为:通过定时任务应用1、定时任务应用2和定时任务应用3分别在Zookeeper的持久父节点下创建各短暂子节点,以实现各所述分布式应用在Zookeeper上争抢注册主节点,而未注册主节点的定时任务应用将注册代理节点,具体地,在各定时任务应用分别创建各自对应的短暂子节点时,将序列编号最小的短暂子节点作为主节点,其余的短暂子节点则作为代理节点。
进一步地,在步骤A30中,所述在各所述短暂子节点中选取所述主节点、各所述代理节点和各备选节点的步骤包括:
步骤A21,获取各所述短暂子节点对应的序列编号;
步骤A22,基于各所述序列编号的数值大小,将各所述短暂子节点分别划分为所述主节点、各所述代理节点和各所述备选节点。
在本实施例中,基于各所述序列编号的数值大小,将各所述短暂子节点分别划分为所述主节点、各所述代理节点和各所述备选节点,具体地,在各所述短暂子节点中选取数值最小的序列编号对应的短暂子节点作为主节点,并选取除所述主节点之外的预设数量的序列编号的数值大小较小的各短暂子节点作为代理节点,并将除所述代理节点和所述主节点之外的各短暂子节点作为所述备选节点,例如,假设各所述序列编号分别为001、002、003、004和005,则选取序列编码为001的短暂子节点为主节点,选取序列编号为002和003的短暂子节点为代理节点,选取序列编号为004和005的短暂子节点为备选节点。
在步骤A20中,在所述在各所述短暂子节点中选取所述主节点、各所述代理节点和各备选节点的步骤之后,所述分布式定时任务分配方法还包括:
步骤B10,通过健康检查器分别监测所述主节点对应的主节点健康状态和各所述代理节点的代理节点健康状态;
在本实施例中,需要说明的是,所述健康检查器为检查Zookeeper的各短暂子节点是否断开连接的检查器。
通过健康检查器分别监测所述主节点对应的主节点健康状态和各所述代理节点的代理节点健康状态,具体地,通过所述健康检查器分别检测所述主节点和各所述代理节点是否断开连接,获得所述主节点对应的主节点健康状态和各所述代理节点对应的代理节点对应的代理节点健康状态。
步骤B20,基于所述主节点健康状态,判断是否需要进行主备选举,并基于所述代理节点健康状态,判断是否需要进行代理节点切换;
在本实施例中,基于所述主节点健康状态,判断是否需要进行主备选举,并基于所述代理节点健康状态,判断是否需要进行代理节点切换,具体地,将所述主节点健康状态和所述代理节点健康状态反馈回调至预设故障转移控制器,并若基于所述主节点健康状态确定主节点断开连接,则通过预设故障转移控制器判定需要进行主备选举,若基于所述主节点健康状态确定主节点未断开连接,则通过预设故障转移控制器判定不需要进行主备选举,相同地,若基于所述代理节点健康状态确定代理节点断开连接,则通过预设故障转移控制器判定需要进行代理节点切换,若基于所述代理节点健康状态确定代理节点未断开连接,则通过预设故障转移控制器判定不需要进行代理节点切换。
进一步地,在步骤B20中,所述基于所述主节点健康状态,判断是否需要进行主备选举的步骤包括:
步骤C10,通过所述健康检查器检测所述主节点对应的节点数据存储路径是否被删除;
在本实施例中,需要明是的是,由于所述主节点为短暂子节点,当主节点对应的分布式应用发生故障时,例如宕机等,分布式应用注册的短暂子节点的节点数据存储路径将会被删除。
步骤C20,若所述主节点对应的节点数据存储路径被删除,则判定需要进行主备选举;
在本实施例中,若所述主节点对应的节点数据存储路径被删除,则证明所述主节点对应的分布式应用发生故障,进而判定需要进行主备选举。
步骤C30,若所述主节点对应的节点数据存储路径未被删除,则判定不需要进行所述主备选举。
在本实施例中,若所述主节点对应的节点数据存储路径未被删除,则证明所述主节点对应的分布式设备未发生故障,进判定不需要进行所述主备选举。
进一步地,在步骤B20中,所述基于所述代理节点健康状态,判断是否需要进行代理节点切换的步骤包括:
步骤D10,通过所述健康检查器检测所述代理节点对应的节点数据存储路径是否被删除;
在本实施例中,需要明是的是,由于所述代理节点为短暂子节点,当代理节点对应的分布式应用发生故障时,例如宕机等,分布式应用注册的短暂子节点的节点数据存储路径将会被删除。
步骤D20,若所述代理节点对应的节点数据存储路径被删除,则判定需要进行代理节点切换;
在本实施例中,若所述代理节点对应的节点数据存储路径被删除,则证明所述代理节点对应的分布式应用发生故障,进而判定需要进行代理节点切换。
步骤D30,若所述主节点对应的节点数据存储路径未被删除,则判定不需要进行代理节点切换。
在本实施例中,若所述代理节点对应的节点数据存储路径未被删除,则证明所述代理节点对应的分布式应用未发生故障,进而判定不需要进行代理节点切换。
步骤B30,若需要进行主备选举,则基于所述预设协调服务,在各所述代理节点中选举第二主节点接管所述主节点;
在本实施例中,若需要进行主备选举,则基于所述预设协调服务,在各所述代理节点中选举第二主节点接管所述主节点,具体地,若需要进行主备选举,则获取除所述主节点之外的各代理节点对应的序列编号,进而选取序列编号的数值最小的代理节点作为第二主节点,并由所述第二主节点接管主节点的责任,进一步地,选取一备选节点接管作为第二主节点的代理节点的责任,其中,需要说明时,备选节点通常处于待机状态,当备选节点需要接管代理节点时,将会由待机状态转变为活跃状态,进而处于活跃状态的备选节点即可接管代理节点。
步骤B40,若需要进行代理节点切换,则基于所述预设协调服务,在各所述备选节点中选取第二代理节点接管对应的代理节点。
在本实施例中,若需要进行代理节点切换,则基于所述预设协调服务,在各所述备选节点中选取第二代理节点接管对应的代理节点,具体地,若需要进行代理节点切换,则基于所述预设协调服务。在各所述备选节点中选取一目标备选节点由待机状态转换为活跃状态,并将处于活跃状态的目标备选节点作为第二代理节点接管需要进行代理节点切换的代理节点的责任。
另外地,需要说明的是,当第二主节点接管主节点后,会将主节点对应的节点数据存储路径下的正在进行的任务标记为待恢复状态,并由第二主节点对应地分布式应用重新执行待恢复状态的任务,相同地,当第二代理节点接管代理节点后,会将代理节点对应的节点数据存储路径下的正在进行的任务标记为待恢复状态,并由第二代理节点对应地分布式应用重新执行待恢复状态的任务,进而实现的任务节点的高可用。
本申请实施例提供一种任务节点创建及其故障检测方法,也即,首先通过所述预设协调服务创建持久父节点,通过各所述分布式应用分别在所述持久父节点下创建对应的各短暂子节点,进而在各所述短暂子节点中选取所述主节点、各所述代理节点和各备选节点,进一步地,由健康检查器监测主节点和各代理节点地健康状态,一旦主节点发生故障,则代理节点可以立即接管主节点地责任,一旦代理节点发生故障,则备选节点可立即接管代理节点地责任,保障任一个任务节点故障后,均可以由另一个节点接管故障节点,进而即使有任务节点宕机,也可以保证快速执行定时任务,提高了定时任务分配与执行的效率。
参照图4,图4是本申请实施例方案涉及的硬件运行环境的设备结构示意图。
如图4所示,该分布式定时任务分配设备可以包括:处理器1001,例如CPU,存储器1005,通信总线1002。其中,通信总线1002用于实现处理器1001和存储器1005之间的连接通信。存储器1005可以是高速RAM存储器,也可以是稳定的存储器(non-volatile memory),例如磁盘存储器。存储器1005可选的还可以是独立于前述处理器1001的存储设备。
可选地,该分布式定时任务分配设备还可以包括矩形用户接口、网络接口、摄像头、RF(Radio Frequency,射频)电路,传感器、音频电路、WiFi模块等等。矩形用户接口可以包括显示屏(Display)、输入子模块比如键盘(Keyboard),可选矩形用户接口还可以包括标准的有线接口、无线接口。网络接口可选的可以包括标准的有线接口、无线接口(如WI-FI接口)。
本领域技术人员可以理解,图4中示出的分布式定时任务分配设备结构并不构成对分布式定时任务分配设备的限定,可以包括比图示更多或更少的部件,或者组合某些部件,或者不同的部件布置。
如图4所示,作为一种计算机存储介质的存储器1005中可以包括操作系统、网络通信模块以及分布式定时任务分配程序。操作系统是管理和控制分布式定时任务分配设备硬件和软件资源的程序,支持分布式定时任务分配程序以及其它软件和/或程序的运行。网络通信模块用于实现存储器1005内部各组件之间的通信,以及与分布式定时任务分配系统中其它硬件和软件之间通信。
在图4所示的分布式定时任务分配设备中,处理器1001用于执行存储器1005中存储的分布式定时任务分配程序,实现上述任一项所述的分布式定时任务分配方法的步骤。
本申请分布式定时任务分配设备具体实施方式与上述分布式定时任务分配方法各实施例基本相同,在此不再赘述。
本申请实施例还提供一种分布式定时任务分配装置,所述分布式定时任务分配装置应用于分布式定时任务分配设备,所述分布式定时任务分配装置包括:
提取模块,用于通过主节点收集待执行任务以及提取各代理节点对应的节点数据存储路径下记录的定时任务执行信息,其中,所述主节点和各所述代理节点通过调用预设协调服务,在所述分布式集群的各分布式应用对应的注册节点中进行选举确定;
计算模块,用于基于各所述定时任务执行信息,分别计算各所述代理节点对应的当前节点负载;
任务分配模块,用于基于各所述当前节点负载在各所述代理节点中选取目标代理节点,将所述待执行任务分配至所述目标代理节点对应的分布式应用。
可选地,所述计算模块还用于:
获取各所述代理节点对应的定时任务分配比重;
基于各所述定时任务分配比重和各所述节点当前执行任务量,分别计算各所述代理节点对应的当前节点负载。
可选地,所述分布式定时任务分配装置还用于:
通过所述预设协调服务创建持久父节点,通过各所述分布式应用分别在所述持久父节点下创建对应的各短暂子节点;
在各所述短暂子节点中选取所述主节点、各所述代理节点和各备选节点。
可选地,所述分布式定时任务分配装置还用于:
获取各所述短暂子节点对应的序列编号;
基于各所述序列编号的数值大小,将各所述短暂子节点分别划分为所述主节点、各所述代理节点和各所述备选节点。
可选地,所述分布式定时任务分配装置还用于:
通过健康检查器分别监测所述主节点对应的主节点健康状态和各所述代理节点的代理节点健康状态;
基于所述主节点健康状态,判断是否需要进行主备选举,并基于所述代理节点健康状态,判断是否需要进行代理节点切换;
若需要进行主备选举,则基于所述预设协调服务,在各所述代理节点中选举第二主节点接管所述主节点;
若需要进行代理节点切换,则基于所述预设协调服务,在各所述备选节点中选取第二代理节点接管对应的代理节点。
可选地,所述分布式定时任务分配装置还用于:
通过所述健康检查器检测所述主节点对应的节点数据存储路径是否被删除;
若所述主节点对应的节点数据存储路径被删除,则判定需要进行主备选举;
若所述主节点对应的节点数据存储路径未被删除,则判定不需要进行所述主备选举。
可选地,所述分布式定时任务分配装置还用于:
更新所述目标代理节点对应的节点数据存储路径下记录的定时任务执行信息。
本申请分布式定时任务分配装置的具体实施方式与上述分布式定时任务分配方法各实施例基本相同,在此不再赘述。
本申请实施例提供了一种可读存储介质,且所述可读存储介质存储有一个或者一个以上程序,所述一个或者一个以上程序还可被一个或者一个以上的处理器执行以用于实现上述任一项所述的分布式定时任务分配方法的步骤。
本申请可读存储介质具体实施方式与上述分布式定时任务分配方法各实施例基本相同,在此不再赘述。
本申请实施例提供了一种计算机程序产品,且所述计算机程序产品包括有一个或者一个以上计算机程序,所述一个或者一个以上计算机程序还可被一个或者一个以上的处理器执行以用于实现上述任一项所述的分布式定时任务分配方法的步骤。
本申请计算机程序产品具体实施方式与上述分布式定时任务分配方法各实施例基本相同,在此不再赘述。
以上仅为本申请的优选实施例,并非因此限制本申请的专利范围,凡是利用本申请说明书及附图内容所作的等效结构或等效流程变换,或直接或间接运用在其他相关的技术领域,均同理包括在本申请的专利处理范围内。
Claims (10)
1.一种分布式定时任务分配方法,其特征在于,应用于分布式集群,所述分布式定时任务分配方法包括:
通过主节点收集待执行任务以及提取各代理节点对应的节点数据存储路径下记录的定时任务执行信息,其中,所述主节点和各所述代理节点通过调用预设协调服务,在所述分布式集群的各分布式应用对应的注册节点中进行选举确定;
基于各所述定时任务执行信息,分别计算各所述代理节点对应的当前节点负载;
基于各所述当前节点负载在各所述代理节点中选取目标代理节点,将所述待执行任务分配至所述目标代理节点对应的分布式应用。
2.如权利要求1所述分布式定时任务分配方法,其特征在于,所述定时任务执行信息包括节点当前执行任务量,
所述基于各所述定时任务执行信息,分别计算各所述代理节点对应的当前节点负载的步骤包括:
获取各所述代理节点对应的定时任务分配比重;
基于各所述定时任务分配比重和各所述节点当前执行任务量,分别计算各所述代理节点对应的当前节点负载。
3.如权利要求1所述分布式定时任务分配方法,其特征在于,在所述通过主节点收集待执行任务以及提取各代理节点对应的节点数据存储路径下记录的定时任务执行信息,其中,所述主节点和各所述代理节点通过调用预设协调服务,在所述分布式集群的各分布式应用对应的注册节点中进行选举确定的步骤之前,所述分布式定时任务分配方法还包括:
通过所述预设协调服务创建持久父节点,通过各所述分布式应用分别在所述持久父节点下创建对应的各短暂子节点;
在各所述短暂子节点中选取所述主节点、各所述代理节点和各备选节点。
4.如权利要求3所述分布式定时任务分配方法,其特征在于,所述在各所述短暂子节点中选取所述主节点、各所述代理节点和各备选节点的步骤包括:
获取各所述短暂子节点对应的序列编号;
基于各所述序列编号的数值大小,将各所述短暂子节点分别划分为所述主节点、各所述代理节点和各所述备选节点。
5.如权利要求3所述分布式定时任务分配方法,其特征在于,在所述在各所述短暂子节点中选取所述主节点、各所述代理节点和各备选节点的步骤之后,所述分布式定时任务分配方法还包括:
通过健康检查器分别监测所述主节点对应的主节点健康状态和各所述代理节点的代理节点健康状态;
基于所述主节点健康状态,判断是否需要进行主备选举,并基于所述代理节点健康状态,判断是否需要进行代理节点切换;
若需要进行主备选举,则基于所述预设协调服务,在各所述代理节点中选举第二主节点接管所述主节点;
若需要进行代理节点切换,则基于所述预设协调服务,在各所述备选节点中选取第二代理节点接管对应的代理节点。
6.如权利要求5所述分布式定时任务分配方法,其特征在于,所述基于所述主节点健康状态,判断是否需要进行主备选举的步骤包括:
通过所述健康检查器检测所述主节点对应的节点数据存储路径是否被删除;
若所述主节点对应的节点数据存储路径被删除,则判定需要进行主备选举;
若所述主节点对应的节点数据存储路径未被删除,则判定不需要进行所述主备选举。
7.如权利要求1所述分布式定时任务分配方法,其特征在于,在所述基于各所述当前节点负载在各所述代理节点中选取目标代理节点,将所述待执行任务分配至所述目标代理节点对应的分布式应用的步骤之后,所述分布式定时任务分配方法还包括:
更新所述目标代理节点对应的节点数据存储路径下记录的定时任务执行信息。
8.一种分布式定时任务分配装置,其特征在于,应用于分布式集群,所述分布式定时任务分配装置包括:
提取模块,用于通过主节点收集待执行任务以及提取各代理节点对应的节点数据存储路径下记录的定时任务执行信息,其中,所述主节点和各所述代理节点通过调用预设协调服务,在所述分布式集群的各分布式应用对应的注册节点中进行选举确定;
计算模块,用于基于各所述定时任务执行信息,分别计算各所述代理节点对应的当前节点负载;
任务分配模块,用于基于各所述当前节点负载在各所述代理节点中选取目标代理节点,将所述待执行任务分配至所述目标代理节点对应的分布式应用。
9.一种分布式定时任务分配设备,其特征在于,所述分布式定时任务分配设备包括:存储器、处理器以及存储在存储器上的用于实现所述分布式定时任务分配方法的程序,
所述存储器用于存储实现分布式定时任务分配方法的程序;
所述处理器用于执行实现所述分布式定时任务分配方法的程序,以实现如权利要求1至7中任一项所述分布式定时任务分配方法的步骤。
10.一种可读存储介质,其特征在于,所述可读存储介质上存储有实现分布式定时任务分配方法的程序,所述实现分布式定时任务分配方法的程序被处理器执行以实现如权利要求1至7中任一项所述分布式定时任务分配方法的步骤。
Priority Applications (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN202110638499.9A CN113377535A (zh) | 2021-06-08 | 2021-06-08 | 分布式定时任务分配方法、装置、设备及可读存储介质 |
Applications Claiming Priority (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN202110638499.9A CN113377535A (zh) | 2021-06-08 | 2021-06-08 | 分布式定时任务分配方法、装置、设备及可读存储介质 |
Publications (1)
Publication Number | Publication Date |
---|---|
CN113377535A true CN113377535A (zh) | 2021-09-10 |
Family
ID=77572712
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
CN202110638499.9A Pending CN113377535A (zh) | 2021-06-08 | 2021-06-08 | 分布式定时任务分配方法、装置、设备及可读存储介质 |
Country Status (1)
Country | Link |
---|---|
CN (1) | CN113377535A (zh) |
Cited By (2)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN113840014A (zh) * | 2021-11-29 | 2021-12-24 | 中国电子科技集团公司第二十八研究所 | 一种适配高强度弱连接环境的分布式任务分解方法 |
CN114153390A (zh) * | 2021-11-19 | 2022-03-08 | 苏州浪潮智能科技有限公司 | 一种分布式存储系统中卷删除优化方法、装置及存储介质 |
-
2021
- 2021-06-08 CN CN202110638499.9A patent/CN113377535A/zh active Pending
Cited By (4)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN114153390A (zh) * | 2021-11-19 | 2022-03-08 | 苏州浪潮智能科技有限公司 | 一种分布式存储系统中卷删除优化方法、装置及存储介质 |
CN114153390B (zh) * | 2021-11-19 | 2023-08-29 | 苏州浪潮智能科技有限公司 | 一种分布式存储系统中卷删除优化方法、装置及存储介质 |
CN113840014A (zh) * | 2021-11-29 | 2021-12-24 | 中国电子科技集团公司第二十八研究所 | 一种适配高强度弱连接环境的分布式任务分解方法 |
CN113840014B (zh) * | 2021-11-29 | 2022-02-22 | 中国电子科技集团公司第二十八研究所 | 一种适配高强度弱连接环境的分布式任务分解方法 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
CN111049705B (zh) | 一种监控分布式存储系统的方法及装置 | |
US11516072B2 (en) | Hybrid cluster recovery techniques | |
CN109656782A (zh) | 可视化调度监控方法、装置及服务器 | |
CN104753994A (zh) | 基于集群服务器系统的数据同步方法及其装置 | |
CN113377535A (zh) | 分布式定时任务分配方法、装置、设备及可读存储介质 | |
CN111026602A (zh) | 一种云平台的健康巡检调度管理方法、装置及电子设备 | |
CN106330523A (zh) | 一种集群服务器容灾系统、方法和服务器节点 | |
CN111880934A (zh) | 一种资源管理方法、装置、设备及可读存储介质 | |
US9886337B2 (en) | Quorum based distributed anomaly detection and repair using distributed computing by stateless processes | |
CN115248826B (zh) | 一种大规模分布式图数据库集群运维管理的方法和系统 | |
CN110971439A (zh) | 策略决策方法及装置、系统、存储介质、策略决策单元及集群 | |
CN115080436B (zh) | 测试指标确定方法、装置、电子设备及存储介质 | |
CN111045811A (zh) | 一种任务分配方法、装置、电子设备及存储介质 | |
US20220182851A1 (en) | Communication Method and Apparatus for Plurality of Administrative Domains | |
CN108243205B (zh) | 一种用于控制云平台资源分配的方法、设备与系统 | |
CN112631756A (zh) | 一种应用于航天测控软件的分布式调控方法及装置 | |
CN111831408A (zh) | 异步任务处理方法、装置、电子设备及介质 | |
CN115499493A (zh) | 异步事务处理方法、装置、存储介质及计算机设备 | |
Stack et al. | Self-healing in a decentralised cloud management system | |
CN114201413A (zh) | 自动化测试方法、系统及电子设备 | |
CN110928679B (zh) | 一种资源分配方法及装置 | |
Liu et al. | Distributed ale in rfid middleware | |
CN115150253B (zh) | 一种故障根因确定方法、装置及电子设备 | |
CN116109112B (zh) | 基于聚合接口的业务数据处理方法、装置、介质和设备 | |
Sinha et al. | Termination detection in cloud |
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 |