一种分布式集群、多节点任务调度方法、装置及存储介质与流程

allin2025-11-03  11


本发明涉及任务调度,尤其涉及一种分布式集群、多节点任务调度方法、装置及存储介质。


背景技术:

1、随着网络技术的发展和数据处理需求的增加,分布式计算系统变得越来越重要。在分布式系统中,任务调度是一个关键问题,它需要将任务分配给各个节点,以便高效地使用计算资源。

2、目前,已有一些基于java的任务调度系统,如apache hadoop和apache spark等。这些系统能够在分布式环境中处理大量数据,但它们通常依赖于特定的框架和库,对于一些简单的任务或特定的应用场景可能过于复杂,开发成本高,资源消耗大。同时,简单场景下实现分布式多节点需求往往无法根据节点的负载情况和任务的需求进行动态分配任务,在节点数量上通常只支持固定数量,无法方便、快捷地扩展到更多节点。


技术实现思路

1、为了解决上述技术问题或者至少部分地解决上述技术问题,本发明提供一种分布式集群、多节点任务调度方法、装置及存储介质。

2、第一方面,本发明提供一种分布式集群、多节点任务调度方法,包括:

3、基于rmi构建任务调度远程方法调用设计,包括:构建rmi服务端、rmi客户端,其中rmi客户端包含任务数据抽取节点;构建rmi服务端的任务队列tasks和中间状态waitting,分别用于存储任务队列数据和任务处理数据的中间状态信息;构建用于处理任务队列tasks和中间状态waitting的rmi远程接口,包括:将数据推送到任务队列tasks的数据推送接口、从任务队列tasks提取数据的数据提取接口、计算整个任务队列tasks数量的tasks计数接口、计算整个中间状态waitting数量的waitting计数接口、按中间状态waitting中中间状态信息的key删除相应中间状态信息的第一waitting删除接口、清空中间状态waitting中全部中间状态信息的waitting清空接口、按存储时间删除中间状态waitting中相应中间状态信息的第二waitting删除接口;

4、根据应用场景类型将不同应用场景产生的任务数据存储到关系型数据库中,其中,任务数据的字段包括:id:任务唯一标识;status:任务处理状态;createdate:任务生成时间;适应应用场景的自定义任务数据属性;

5、通过所述任务数据抽取节点将任务数据抽取到任务队列tasks和中间状态waitting中;各作为任务处理节点的rmi客户端通过调用rmi远程接口,实时、动态、多节点获取任务数据,任务数据获取后根据实际应用场景处理任务并回写任务状态;所述任务数据抽取节点根据预设参数t,定时清除中间状态waitting中间状态信息;循环任务数据的推送和处理。

6、更进一步的,采用链接队列创建任务队列tasks,任务队列tasks用来存储任务队列数据,链接队列是一个基于链表实现的阻塞队列,链接队列内部由单链表实现,只能从队列的头部取元素,向队列的尾部添加元素,链接队列采用包含两把锁的锁分离技术实现入队出队互不阻塞,添加元素和获取元素都有独立的锁,实现链接队列的读写分离,支持读写操作并行执行;采用同步哈希映射创建中间状态waitting,中间状态waitting来存储任务处理数据的中间状态信息。

7、更进一步的,作为任务处理节点的rmi客户端配置多线程处理机制。

8、更进一步的,通过任务数据抽取节点将任务数据抽取到任务队列tasks和中间状态waitting中,包括:对关系型数据库中任务数据按任务生成时间排序升序排序;

9、根据任务数据status状态为未推送状态来选择待抽取的任务数据,

10、建立链接实例,通过循环的方式定量定时的获取待抽取的任务数据,先将待抽取的任务数据格式化为json字符串,然后利用链接实例调用数据推送接口将任务数据推送到任务队列tasks中,同时将当前待处理任务数据的唯一标识id和存储时间存储到中间状态waitting中。

11、更进一步的,根据任务队列tasks和中间状态waitting控制将任务数据抽取到任务队列tasks和中间状态waitting的过程,包括:

12、设定任务队列tasks可承载最大数据量阈值tmax;

13、数据推送接口通过tasks计数接口获取当前任务队列tasks的长度,数据推送接口根据当前任务队列tasks的长度是否大于可承载最大数据量阈值tmax判断是否将待处理任务存储到任务队列tasks中,如果当前任务队列tasks的长度小于可承载最大数据量阈值tmax,且不在任务队列task中,则将待处理任务存储到任务队列tasks的队尾,同时将当前待处理任务数据的唯一标识id和存储时间存储到中间状态数据waitting中,如果大于等于可承载最大数据量阈值tmax,或在任务队列task中,则当前任务数据不进入待处理任务队列tasks,等待下一批次数据再次验证。

14、更进一步的,根据中间状态waitting中待处理任务数据的id判断当前推送过来的待处理任务数据是否已经存在任务队列tasks中,如果已经存在了,就不再重复推送到任务队列tasks中,如果没有存在,则将待处理任务数据推送到任务队列tasks中。

15、更进一步的,各作为任务处理节点rmi客户端通过调用rmi远程接口,实时、动态、多节点获取任务数据,任务数据获取后根据实际应用场景处理任务并回写任务状态包括:

16、启动线程池,独立启动一个无线循环的监控线程,所述监控线程通过try,catch和finally方法来执行实际任务推送逻辑,在finally方法中通过设置线程睡眠时间限定每次循环的间隔时间,实现控制当前任务处理节点获取任务数据的频率;在try方法中,获取目前线程池线程活跃数量并与线程池的线程数量比较,如果目前线程池线程活跃数量已经等于threadcount初始化线程数量,那么就不再继续获取待处理任务,否则通过建立远程连接,从rmi服务端任务队列tasks中获取待处理任务,从线程池激活一个线程来执行获取的当前任务,任务处理完毕后对在关系型数据库中的任务数据进行状态回写,对任务数据的status属性进行更新,变更为已处理状态。

17、更进一步的,所述任务数据抽取节点根据预设参数t,定时清除中间状态waitting中间状态信息,包括:

18、配置参数t作为当前应用场景下最大任务处理时间的阈值,启动一个定时任务,定时通过第一waitting删除接口或第二waitting删除接口,实现定时、批量清理超过最大任务处理时间t的中间状态waitting的中间状态信息,以保证任务数据不会被重复推送的同时,还针对性的清除中间状态waitting中异常处理任务的中间状态信息,允许异常处理的任务再次被提取处理。

19、第二方面,本发明提供一种实现分布式集群、多节点任务调度方法的装置,包括:至少一处理单元,所述处理单元通过总线单元连接存储单元,所述存储单元存储计算机程序,所述计算机程序被所述处理单元执行时,实现所述的分布式集群、多节点任务调度方法。

20、第三方面,本发明提供一种计算机可读存储介质,所述计算机可读存储介质存储计算机程序,所述计算机程序被处理器执行时,实现所述的分布式集群、多节点任务调度方法。

21、本发明实施例提供的上述技术方案与现有技术相比具有如下优点:

22、本发明基于rmi构建任务调度远程方法调用设计,包括:构建rmi服务端、rmi客户端;构建rmi服务端的任务队列tasks和中间状态waitting;构建rmi远程接口;根据应用场景类型将不同应用场景产生的任务数据存储到关系型数据库中;通过任务数据抽取节点将任务数据抽取到任务队列tasks和中间状态waitting中;各作为任务处理节点rmi客户端通过调用rmi远程接口,实时、动态、多节点获取任务数据,任务数据获取后根据实际应用场景处理任务并回写任务状态;所述任务数据抽取节点根据预设参数t,定时清除中间状态waitting中间状态信息;循环任务数据的推送和处理。本发明基于rmi构建任务调度远程方法调用设计,针对轻量级分布式任务调度需求场景,提供一套分布式集群、多节点任务调度方法,资源占用低、轻量化、支持跨平台,节点拓展简便。


技术特征:

1.一种分布式集群、多节点任务调度方法,其特征在于,包括:

2.根据权利要求1所述的分布式集群、多节点任务调度方法,其特征在于,采用链接队列创建任务队列tasks,任务队列tasks用来存储任务队列数据,链接队列是基于链表实现的阻塞队列,链接队列内部由单链表实现,只能从队列的头部取元素,向队列的尾部添加元素,链接队列采用包含两把锁的锁分离技术实现入队出队互不阻塞,添加元素和获取元素都有独立的锁,实现链接队列的读写分离,支持读写操作并行执行;采用同步哈希映射创建中间状态waitting,中间状态waitting来存储任务处理数据的中间状态信息。

3.根据权利要求1所述的分布式集群、多节点任务调度方法,其特征在于,作为任务处理节点的rmi客户端配置多线程处理机制。

4.根据权利要求1所述的分布式集群、多节点任务调度方法,其特征在于,通过任务数据抽取节点将任务数据抽取到任务队列tasks和中间状态waitting中,包括:

5.根据权利要求4所述的分布式集群、多节点任务调度方法,其特征在于,根据任务队列tasks和中间状态waitting控制将任务数据抽取到任务队列tasks和中间状态waitting的过程,包括:

6.根据权利要求5所述的分布式集群、多节点任务调度方法,其特征在于,根据中间状态waitting中待处理任务数据的id判断当前推送过来的待处理任务数据是否已经存在任务队列tasks中,如果已经存在了,就不再重复推送到任务队列tasks中,如果没有存在,则将待处理任务数据推送到任务队列tasks中。

7.根据权利要求1所述的分布式集群、多节点任务调度方法,其特征在于,各作为任务处理节点rmi客户端通过调用rmi远程接口,实时、动态、多节点获取任务数据,任务数据获取后根据实际应用场景处理任务并回写任务状态包括:

8.根据权利要求1所述的分布式集群、多节点任务调度方法,其特征在于,所述任务数据抽取节点根据预设参数t,定时清除中间状态waitting中间状态信息,包括:

9.一种实现分布式集群、多节点任务调度方法的装置,其特征在于,包括:至少一处理单元,所述处理单元通过总线单元连接存储单元,所述存储单元存储计算机程序,所述计算机程序被所述处理单元执行时,实现如权利要求1-8任一所述的分布式集群、多节点任务调度方法。

10.一种计算机可读存储介质,所述计算机可读存储介质存储计算机程序,其特征在于,所述计算机程序被处理器执行时,实现如权利要求1-8任一项所述的分布式集群、多节点任务调度方法。


技术总结
本发明涉及轻量化低成本的一种分布式集群、多节点任务调度方法、装置及存储介质,涉及任务调度技术领域。本申请基于RMI构建任务调度远程方法调用设计,包括:构建RMI服务端、RMI客户端,构建RMI服务端的任务队列tasks和中间状态waitting,构建RMI远程接口;根据应用场景类型将不同应用场景产生的任务数据存储到关系型数据库中;通过任务数据抽取节点将任务数据抽取到任务队列tasks和中间状态waitting中;各作为任务处理节点RMI客户端通过调用RMI远程接口,实时、动态、多节点获取任务数据,任务数据获取后根据实际应用场景处理任务并回写任务状态;任务数据抽取节点根据预设参数t,定时清除超时的中间状态信息;循环任务数据的推送和处理。

技术研发人员:王义龙,曹峰,单佳,胡源
受保护的技术使用者:中国人寿保险股份有限公司山东省分公司
技术研发日:
技术公布日:2024/10/31
转载请注明原文地址: https://www.8miu.com/read-24320.html

最新回复(0)