CN112783892A - 一种通过事件驱动模型实现的链式任务执行引擎 - Google Patents
一种通过事件驱动模型实现的链式任务执行引擎 Download PDFInfo
- Publication number
- CN112783892A CN112783892A CN202011598258.8A CN202011598258A CN112783892A CN 112783892 A CN112783892 A CN 112783892A CN 202011598258 A CN202011598258 A CN 202011598258A CN 112783892 A CN112783892 A CN 112783892A
- Authority
- CN
- China
- Prior art keywords
- task
- event
- node
- chained
- execution engine
- 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.)
- Withdrawn
Links
Images
Classifications
-
- 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/22—Indexing; Data structures therefor; Storage structures
- G06F16/2228—Indexing structures
- G06F16/2246—Trees, e.g. B+trees
-
- 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/2379—Updates performed during online database operations; commit processing
-
- 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/25—Integrating or interfacing systems involving database management systems
- G06F16/256—Integrating or interfacing systems involving database management systems in federated or virtual databases
-
- 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
Landscapes
- Engineering & Computer Science (AREA)
- Databases & Information Systems (AREA)
- Theoretical Computer Science (AREA)
- Data Mining & Analysis (AREA)
- Physics & Mathematics (AREA)
- General Engineering & Computer Science (AREA)
- General Physics & Mathematics (AREA)
- Computing Systems (AREA)
- Software Systems (AREA)
- Information Retrieval, Db Structures And Fs Structures Therefor (AREA)
Abstract
本发明公开了一种通过事件驱动模型实现的链式任务执行引擎,采用事件驱动模型,通过事件通知来驱动任务节点的顺序执行;以rabbitmq为节点传输的传播方式;通过jdbc将数据持久化到oracle数据库来记录任务的执行状态。本发明通过建立通过事件驱动模型实现的链式任务执行引擎,使各个节点服务器均能够获取各事件的各任务的运行状态信息完成存放,实现数据易收集、易同步,提高分布式系统的易用性。
Description
技术领域
本发明属于信息处理技术领域,具体涉及一种通过事件驱动模型实现的链式任务执行引擎。
背景技术
目前,执行多个任务,且任务之间存在作用关系,需要流程化执行引擎,来同步数据,提高分布式系统的易用性。在分布式系统中一个事件可能被分为多个任务运行在多个节点服务器上,而同一时间又可能有多个不同事件并存。对此,目前没有成熟、统一的任务执行过程,导致无法方便应对多任务数据收集、同步的问题。
发明内容
本发明的针对现有技术中的不足,提供一种通过事件驱动模型实现的链式任务执行引擎。
为实现上述目的,本发明采用以下技术方案:
一种通过事件驱动模型实现的链式任务执行引擎,采用事件驱动模型,通过事件通知来驱动任务节点的顺序执行;
以rabbitmq为节点传输的传播方式;
通过jdbc将数据持久化到oracle数据库来记录任务的执行状态。
为优化上述技术方案,采取的具体措施还包括:
进一步地,以树状存储结构为基本的事件驱动模型。
进一步地,第一节点服务器接收事件分发服务器下发的第一任务并执行第一任务,执行第一任务的同时,将当前节点的运行状态信息存储及发送给分布式数据库。
进一步地,从分布式数据库中获取第二任务的运行状态信息,第一节点服务器将第一任务的运行状态信息及第二任务的运行状态信息存放在各个目标任务的树状存储结构中;第一节点服务器接收到用户设备发来的监控请求信息后,将各个目标任务的树状存储结构发送给所述用户设备。
进一步地,第二任务的运行状态信息为第二节点服务器接收事件分发服务器针对目标任务下发的第二任务,运行第二任务后获取到的运行状态信息。
进一步地,针对各个节点,在节点完成对应的任务流程之后,在树状存储结构上将当前节点的执行状态标记为已执行状态。
进一步地,还包括获取各个目标任务的树状存储结构的最后更新时间,计算所述最后更新时间与当前时间的差值,当差值超出预设阈值,则将对应的目标任务的树状存储结构数据删除。
本发明的有益效果是:本发明通过建立通过事件驱动模型实现的链式任务执行引擎,使各个节点服务器均能够获取各事件的各任务的运行状态信息完成存放,并在接收到用户设备发来的监控请求信息后,将各个目标任务的状态信息发送给用户设备,实现数据易收集、易同步,提高分布式系统的易用性。
附图说明
图1是本发明的方法流程图。
具体实施方式
现在结合附图对本发明作进一步详细的说明。
如图1所示,本发明提供了一种通过事件驱动模型实现的链式任务执行引擎,采用事件驱动模型,本发明的一个实施例中,以树状存储结构为基本的事件驱动模型;通过事件通知来驱动任务节点的顺序执行。
具体地,本发明的链式任务执行引擎中包括第一节点服务器、事件分发服务器、第二节点服务器、分布式数据库等。第一节点服务器接收事件分发服务器下发的第一任务并执行第一任务,执行第一任务的同时,将当前节点的运行状态信息存储及发送给分布式数据库。从分布式数据库中获取第二任务的运行状态信息,第一节点服务器将第一任务的运行状态信息及第二任务的运行状态信息存放在各个目标任务的树状存储结构中;其中,第二任务的运行状态信息为第二节点服务器接收事件分发服务器针对目标任务下发的第二任务,运行第二任务后获取到的运行状态信息。第一节点服务器接收到用户设备发来的监控请求信息后,将各个目标任务的树状存储结构发送给所述用户设备。
以rabbitmq为节点传输的传播方式。
通过jdbc将数据持久化到oracle数据库来记录任务的执行状态。针对各个节点,在节点完成对应的任务流程之后,在树状存储结构上将当前节点的执行状态标记为已执行状态。
本发明还包括时间获取模块,用于获取各个目标任务的树状存储结构的最后更新时间,计算所述最后更新时间与当前时间的差值,当差值超出预设阈值,则将对应的目标任务的树状存储结构数据删除。
在本发明的另一个实施例中,实时存储生成的任务动态分配方案,并采用事件驱动模型来检测当前分配任务是否发生变化,若是,则将变化后的任务分配方案实时分配至相应任务节点服务器。
在本发明的另一个实施例中,节点服务器生成初始任务分配方案的过程,包括:
步骤1、分析接收的流处理作业的拓扑结构,利用搜索算法对流处理中逻辑单元进行排序,获取排序后的列表;
步骤2、利用初始化并发度对上述排序后的列表按比例展开为任务实例列表;
步骤3、:获取当前集群中可用的计算节点服务器及插槽,对当前集群中可用计算节点服务器按照插槽剩余数目进行升序排序;
步骤4、将任务实例列表按序分配至可用计算节点服务器上,完成第一步分配;
步骤5、寻找能够替换当前分配方案的计算节点服务器,使得所使用的计算节点服务器的空余插槽尽可能少,若有,执行替换并重复该步骤,直至完成;
步骤6、获得流处理作业的初始化分配方案。
主控节点服务器完成对新的任务分配方案的分配后,运行中的流处理作业按照新指定的任务分配方案进行调整,在主控节点服务器中进行以下步骤:
(1)对比更改前后的分配方案中任务并发度的改变,将其分为两个集合,分别是:并发度缩减集合和并发度增加集合。
(2)首先,调整并发度缩减集合中的流处理作业任务。调整采用如下策略:
a)对该流处理作业所占用的计算节点按照使用的插槽数目升序进行排序。
b)遍历每个计算节点,若仍有可减少的任务,则取消相应的插槽分配。
c)重复上一步骤,直至完成。
(3)然后,对并发度增加集合中的流处理作业的任务实例进行调整。调整采用如下策略:
a)对该流处理任务所占用的计算节点按照空余的插槽数目升序进行排序。
b)遍历每个计算节点,若有空余插槽,则增加在流处理任务中相近的一个任务实例。
c)重复上一步骤,直至完成。
d)若仍有未分配的任务,则从集群中选择空余资源最多的服务器,增加相应的任务。
e)重复上一步骤,直至全部完成。
(4)主控节点服务器完成上述任务和物理节点的重新分配后,将变更后的任务分配方案写入分布式协调模块中,广播至集群的各个节点。
(5)位于各个节点上的动态方案应用模块检测到任务分配方案变化,即时按照新的任务分配方案对位于该节点上的插槽进行任务分配调整。调整过程中不影响未变化的流处理任务实例所在节点,以保证流处理作业的运行效率。
其中,主控节点服务器根据预测数据,检查是否违反物理资源约束,若违反,计算满足需求的相应流处理逻辑单元的并发度,作为新的并发度。
本发明通过jdbc将数据持久化到oracle数据库来记录任务的执行状态,在本发明的一个实施例中,按照如下流程:
(1)在Web应用程序中,按照JDBC规范封装SQL检索、插入、更新和删除等操作调用请求;
(2)通过虚拟数据库JDBC驱动包,Web应用程序和虚拟数据库建立连接,通过此连接将步骤1)中封装好的SQL调用请求发送给虚拟数据库。
(3)虚拟数据库通过连接池模块管理和Web应用程序建立的所有连接,并通过用户安全 和日志维护模块对Web应用程序的SQL操作进行授权与审计。
(4)对于接收到的SQL调用请求,通过SQL调用接口,转换成虚拟数据库支持的SQL调用语句。
(5)SQL语句分析器根据虚拟数据库的参数配置,判断本次SQL调用请求涉及哪些表,需要哪些数据访问插件参与,以及结果集的处理方式,并组装成各数据访问插件能够识别的执行命令,然后把执行命令发送给SQL语句执行器。根据业务应用的具体情况,虚拟数据库的参数配置不同:对于存在大量数据的表,参数配置可将数据分散存储于多个实际的数据库;对于小数据量的表,可进行冗余存储,进而通过多重备份来增加系统的可靠性和并发性能。SQL语句分析器可以根据不同的业务应用情况设置结果集处理方式,对于分散存储模式,采用多库结果集归并处理方式;对于多重备份模式,采用负载均衡,选择最佳的数据库执行并返回结果。
(6)SQL语句执行器接收到执行命令后,首先判断是否可以使用缓存并且缓存数据有效, 如是则直接调用数据缓存模块将结果返回给Web应用程序,否则将执行命令送给调度分发器执行,根据执行命令设置的结果集处理方式,对调度分发器返回的结果集进行处理,然后将结果返回给Web应用程序,并调用数据缓存模块更新缓存。
(7)调度分发器对接收的执行命令,根据命令类别从数据访问插件管理器中获取对应的 数据访问插件,然后调用数据访问插件相应接口执行命令,并将结果返回给SQL语句执行器进行处理。如果涉及多个实体数据库,每个都会被调度执行。
(8)数据访问插件封装实体数据库的访问接口,一般通过JDBC驱动的方式和实体数据库建立连接,将SQL调用请求发送给实体数据库管理系统执行并收集返回结果。不同厂商的数据库有各自的数据访问插件,如Oracle数据访问插件、MySQL数据访问插件、SQLServer 数据访问插件等,所有的数据访问插件都需要通过虚拟数据库配置管理工具在数据访问插件管理器中注册。
(9)数据分布式处理器所提供用户安全、日志维护、配置管理模块属于基础模块,为其他模块提供配置、授权与审计服务,以增加系统的安全性、可靠性。
本发明通过建立通过事件驱动模型实现的链式任务执行引擎,使各个节点服务器均能够获取各事件的各任务的运行状态信息完成存放,并在接收到用户设备发来的监控请求信息后,将各个目标任务的状态信息发送给用户设备,实现数据易收集、易同步,提高分布式系统的易用性。本发明能够根据流处理作业运行过程中的数据处理量及计算节点负载,利用历史信息及预测信息等多种信息来源,动态监控并调整任务分配策略。
以上仅是本发明的优选实施方式,本发明的保护范围并不仅局限于上述实施例,凡属于本发明思路下的技术方案均属于本发明的保护范围。应当指出,对于本技术领域的普通技术人员来说,在不脱离本发明原理前提下的若干改进和润饰,应视为本发明的保护范围。
Claims (7)
1.一种通过事件驱动模型实现的链式任务执行引擎,其特征在于,
采用事件驱动模型,通过事件通知来驱动任务节点的顺序执行;
以rabbitmq为节点传输的传播方式;
通过jdbc将数据持久化到oracle数据库来记录任务的执行状态。
2.根据权利要求1所述的链式任务执行引擎,其特征在于,以树状存储结构为基本的事件驱动模型。
3.根据权利要求2所述的链式任务执行引擎,其特征在于,第一节点服务器接收事件分发服务器下发的第一任务并执行第一任务,执行第一任务的同时,将当前节点的运行状态信息存储及发送给分布式数据库。
4.根据权利要求3所述的链式任务执行引擎,其特征在于,从分布式数据库中获取第二任务的运行状态信息,第一节点服务器将第一任务的运行状态信息及第二任务的运行状态信息存放在各个目标任务的树状存储结构中;第一节点服务器接收到用户设备发来的监控请求信息后,将各个目标任务的树状存储结构发送给所述用户设备。
5.根据权利要求4所述的链式任务执行引擎,其特征在于,第二任务的运行状态信息为第二节点服务器接收事件分发服务器针对目标任务下发的第二任务,运行第二任务后获取到的运行状态信息。
6.根据权利要求4所述的链式任务执行引擎,其特征在于,针对各个节点,在节点完成对应的任务流程之后,在树状存储结构上将当前节点的执行状态标记为已执行状态。
7.根据权利要求1所述的链式任务执行引擎,其特征在于,还包括获取各个目标任务的树状存储结构的最后更新时间,计算所述最后更新时间与当前时间的差值,当差值超出预设阈值,则将对应的目标任务的树状存储结构数据删除。
Priority Applications (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN202011598258.8A CN112783892A (zh) | 2020-12-30 | 2020-12-30 | 一种通过事件驱动模型实现的链式任务执行引擎 |
Applications Claiming Priority (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN202011598258.8A CN112783892A (zh) | 2020-12-30 | 2020-12-30 | 一种通过事件驱动模型实现的链式任务执行引擎 |
Publications (1)
Publication Number | Publication Date |
---|---|
CN112783892A true CN112783892A (zh) | 2021-05-11 |
Family
ID=75751446
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
CN202011598258.8A Withdrawn CN112783892A (zh) | 2020-12-30 | 2020-12-30 | 一种通过事件驱动模型实现的链式任务执行引擎 |
Country Status (1)
Country | Link |
---|---|
CN (1) | CN112783892A (zh) |
Cited By (1)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN113778710A (zh) * | 2021-09-01 | 2021-12-10 | 杭州视洞科技有限公司 | 一种网关树形执行链 |
-
2020
- 2020-12-30 CN CN202011598258.8A patent/CN112783892A/zh not_active Withdrawn
Cited By (2)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN113778710A (zh) * | 2021-09-01 | 2021-12-10 | 杭州视洞科技有限公司 | 一种网关树形执行链 |
CN113778710B (zh) * | 2021-09-01 | 2024-04-02 | 杭州视洞科技有限公司 | 一种网关树形执行链 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
US7370029B2 (en) | Method of changing system configuration in shared-nothing database management system | |
CN111327681A (zh) | 一种基于Kubernetes的云计算数据平台构建方法 | |
US9723097B2 (en) | Assigning shared catalogs to cache structures in a cluster computing system | |
US20180335952A1 (en) | Precisely tracking memory usage in multi-process computing environment | |
CN103336808B (zh) | 一种基于bsp模型的实时图数据处理系统及方法 | |
CN104050042B (zh) | Etl作业的资源分配方法及装置 | |
CA3177212A1 (en) | Resource allocating method, device, computer equipment, and storage medium | |
CN106528853A (zh) | 数据交互管理装置、跨库数据交互处理装置及方法 | |
KR20140119090A (ko) | 확장 가능한 환경에서의 동적 로드 밸런싱 기법 | |
CN107506381A (zh) | 一种大数据分布式调度分析方法、系统装置及存储介质 | |
CN107861796A (zh) | 一种支持云数据中心能耗优化的虚拟机调度方法 | |
CN105516267B (zh) | 云平台高效运行方法 | |
US20100199058A1 (en) | Data Set Size Tracking and Management | |
CN112905339A (zh) | 任务调度执行方法、装置及系统 | |
CN112015765A (zh) | 基于缓存价值的Spark缓存淘汰方法及系统 | |
CN112783892A (zh) | 一种通过事件驱动模型实现的链式任务执行引擎 | |
CN114389955A (zh) | 嵌入式平台异构资源池化管理方法 | |
CN101937334A (zh) | 计算支持方法及系统 | |
CN113590281A (zh) | 基于动态集中式调度的分布式并行模糊测试方法及系统 | |
CN110909023B (zh) | 一种查询计划的获取方法、数据查询方法及装置 | |
Mukherjee | Non-replicated dynamic fragment allocation in distributed database systems | |
CN112350837B (zh) | 一种基于云平台的电力应用集群管理方法及装置 | |
CA2431424A1 (en) | Method and apparatus for distributing and reusing object identifiers | |
Philip et al. | Performance comparison of IO shipping and database call shipping: Schemes in multisystem partitioned databases | |
Luo et al. | Towards efficiently supporting database as a service with QoS guarantees |
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 | ||
WW01 | Invention patent application withdrawn after publication | ||
WW01 | Invention patent application withdrawn after publication |
Application publication date: 20210511 |