一种分布式作业调度方法、系统、电子设备及介质技术方案

技术编号:37259626 阅读:30 留言:0更新日期:2023-04-20 23:34
本发明专利技术涉及分布式处理技术领域,公开了一种分布式作业调度方法、系统、电子设备及介质,包括:S1、获取集群中所有节点的IP地址,并将所有所述节点的IP写入数据库中;S2、获取本次作业的作业列表,在预备的可执行的节点范围内根据所述作业列表关联查询本次作业可执行的节点;S3、根据查询到的可执行的节点的IP地址计算出本次作业的任务分片编号;S4、所述节点根据任务分片编号执行对应的作业业务逻辑。本发明专利技术大大减少了分布式作业调度场景下的第三方分布式协调组件依赖,只依赖业务系统自身的关系型数据库。系型数据库。系型数据库。

【技术实现步骤摘要】
一种分布式作业调度方法、系统、电子设备及介质


[0001]本专利技术涉及分布式处理
,具体涉及一种分布式作业调度方法、系统、电子设备及介质。

技术介绍

[0002]当有业务需要进行批量处理时,单机性能不足以在规定时间内完成作业。现有分布式作业调度方案,大多依赖于第三方分布式协调器,通过外部协调机制,将作业合理的分配到执行节点,并完成故障转移等操作。但是该方案依赖第三方组件,在一些功能较简单的作业场景,出现故障时排查难度也比较大,对开发人员和运维人员要求也比较高,引入和运维成本较高。

技术实现思路

[0003]本专利技术提供一种分布式作业调度方法、系统、电子设备及介质,降低引入复杂度,减少运维成本,在尽可能简单的架构下,不依赖第三方组件,利用业务系统关系型数据库自身特性,在可用性要求不高或较简单的业务场景下解决分布式作业调度问题。
[0004]本专利技术通过下述技术方案实现:
[0005]一种分布式作业调度方法,包括:
[0006]S1、获取集群中所有节点的IP地址,并将所有所述节点的IP写入数据库中;
[0007]S2、获取本次作业的作业列表,在预备的可执行的节点范围内根据所述作业列表关联查询本次作业可执行的节点;
[0008]S3、根据查询到的可执行的节点的IP地址计算出本次作业的任务分片编号;
[0009]S4、所述节点根据任务分片编号执行对应的作业业务逻辑。
[0010]作为优化,S1的具体步骤为:
[0011]S1.1、在所述数据库中创建作业管理表;
[0012]S1.2、节点启动时,将节点自身的IP地址写入所述作业管理表中,并且定时更新注册时间。
[0013]作为优化,还包括S1.3,启动异步线程定时,每N秒更新存活时间戳,N为正整数,用于感知除S1.2启动的节点以外的所有节点的存在。
[0014]作为优化,S2中,在获取作业列表之前,检测所述集群中所有节点的存活时间与当前时间的差值,如果有节点的存活时间与当前时间的差值大于M秒,M为正整数,则认为该节点已下线,不在预备的可执行的节点范围内。
[0015]作为优化,制作数据库锁,在检测所述集群中所有节点的存活时间与当前时间的差值时,通过所述数据库锁使得在同一时刻只有一个节点在执行集群状态更新操作。
[0016]作为优化,S3的具体过程为:所述可执行的节点的IP地址通过Hash算法计算出本节点需要执行的任务分片编号。
[0017]作为优化,S4中,在业务层设计幂设计或者人工突然处理预备方案,防止若某一节
点在执行对应的作业业务逻辑时突然宕机导致作业业务逻辑中断的情况。
[0018]本专利技术还公开了一种分布式作业调度系统,包括:
[0019]采集模块,用于获取集群中所有节点的IP地址,并将所有所述节点的IP写入数据库中;
[0020]关联模块,用于获取本次作业的作业列表,在预备的可执行的节点范围内根据所述作业列表关联查询本次作业可执行的节点;
[0021]分片模块,用于根据查询到的可执行的节点的IP地址计算出本次作业的任务分片编号;
[0022]执行器,用于使所述节点根据任务分片编号执行对应的作业业务逻辑;
[0023]其中,每个节点均包括启动器、监听器和执行器,
[0024]所述启动器用于启动节点的作业;
[0025]所述监听器用于监听所述节点是否下线,若该节点下线,则剔除该节点。
[0026]本专利技术还公开了一种电子设备,包括至少一个处理器,以及与所述至少一个处理器通信连接的存储器;其中,所述存储器存储有可被所述至少一个处理器执行的指令,所述指令被所述至少一个处理器执行,以使所述至少一个处理器能够执行如上述的一种分布式作业调度方法。
[0027]本专利技术还公开了一种存储介质,存储有计算机程序,其特征在于,所述计算机程序被处理器执行时实现上述的一种分布式作业调度方法。
[0028]本专利技术与现有技术相比,具有如下的优点和有益效果:
[0029]本专利技术大大减少了分布式作业调度场景下的第三方分布式协调组件依赖,只依赖业务系统自身的关系型数据库。
附图说明
[0030]为了更清楚地说明本专利技术示例性实施方式的技术方案,下面将对实施例中所需要使用的附图作简单地介绍,应当理解,以下附图仅示出了本专利技术的某些实施例,因此不应被看作是对范围的限定,对于本领域普通技术人员来讲,在不付出创造性劳动的前提下,还可以根据这些附图获得其他相关的附图。在附图中:
[0031]图1为本专利技术的一种分布式作业调度方法的流程图;
[0032]图2为本专利技术的一种分布式作业调度系统的结构示意图。
具体实施方式
[0033]为使本专利技术的目的、技术方案和优点更加清楚明白,下面结合实施例和附图,对本专利技术作进一步的详细说明,本专利技术的示意性实施方式及其说明仅用于解释本专利技术,并不作为对本专利技术的限定。
[0034]实施例1
[0035]如图1所示,一种分布式作业调度方法,包括:
[0036]S1、获取集群中所有节点的IP地址,并将所有所述节点的IP写入数据库中;
[0037]本实施例中,S1的具体步骤为:
[0038]S1.1、在所述数据库中创建作业管理表;
[0039]S1.2、节点启动时,将节点自身的IP地址写入所述作业管理表中,并且定时更新注册时间。
[0040]S1.3,启动异步线程定时,每N秒更新存活时间戳,N为正整数,用于感知除S1.2启动的节点以外的所有节点的存在,这里,N可以为3。
[0041]S2、获取本次作业的作业列表,在预备的可执行的节点范围内根据所述作业列表关联查询本次作业可执行的节点;
[0042]本实施例中,在获取作业列表之前,检测所述集群中所有节点的存活时间与当前时间的差值,如果有节点的存活时间与当前时间的差值大于M秒,M为正整数,则认为该节点已下线,不在预备的可执行的节点范围内,由监听器定时检查更新时间剔除该节点。这里,M可以为120。本实施例中,制作数据库锁,在检测所述集群中所有节点的存活时间与当前时间的差值时,通过所述数据库锁使得在同一时刻只有一个节点在执行集群状态更新操作,这样可以防止多节点操作而发生冲突。
[0043]S3、根据查询到的可执行的节点的IP地址计算出本次作业的任务分片编号;具体的,所述可执行的节点的IP地址通过Hash算法计算出本节点需要执行的任务分片编号。
[0044]S4、所述节点根据任务分片编号执行对应的作业业务逻辑,本实施例中,在业务层设计幂设计或者人工突然处理预备方案,防止若某一节点在执行对应的作业业务逻辑时突然宕机导致作业业务逻辑中断的情况。
[0045]例如,四节点定时获取监控数据并做聚合计算:
[0046]1.在数据库中创建相应的作业管理表;
[0047]2.节点启动时将本机IP写入作业节点表,并且定时更新本文档来自技高网
...

【技术保护点】

【技术特征摘要】
1.一种分布式作业调度方法,其特征在于,包括:S1、获取集群中所有节点的IP地址,并将所有所述节点的IP写入数据库中;S2、获取本次作业的作业列表,在预备的可执行的节点范围内根据所述作业列表关联查询本次作业可执行的节点;S3、根据查询到的可执行的节点的IP地址计算出本次作业的任务分片编号;S4、所述节点根据任务分片编号执行对应的作业业务逻辑。2.根据权利要求1所述的一种分布式作业调度方法,其特征在于,S1的具体步骤为:S1.1、在所述数据库中创建作业管理表;S1.2、节点启动时,将节点自身的IP地址写入所述作业管理表中,并且定时更新注册时间。3.根据权利要求2所述的一种分布式作业调度方法,其特征在于,还包括S1.3,启动异步线程定时,每N秒更新存活时间戳,N为正整数,用于感知除S1.2启动的节点以外的所有节点的存在。4.根据权利要求1所述的一种分布式作业调度方法,其特征在于,S2中,在获取作业列表之前,检测所述集群中所有节点的存活时间与当前时间的差值,如果有节点的存活时间与当前时间的差值大于M秒,M为正整数,则认为该节点已下线,不在预备的可执行的节点范围内。5.根据权利要求4所述的一种分布式作业调度方法,其特征在于,制作数据库锁,在检测所述集群中所有节点的存活时间与当前时间的差值时,通过所述数据库锁使得在同一时刻只有一个节点在执行集群状态更新操作。6.根据权利要求1所述的一种分布式作业调度方法,其特征在于...

【专利技术属性】
技术研发人员:谢延泽李群王澍张明宋孚杰
申请(专利权)人:四川新网银行股份有限公司
类型:发明
国别省市:

网友询问留言 已有0条评论
  • 还没有人留言评论。发表了对其他浏览者有用的留言会获得科技券。

1