CN114253742A - 一种无服务器框架分布式执行方法及系统 - Google Patents
一种无服务器框架分布式执行方法及系统 Download PDFInfo
- Publication number
- CN114253742A CN114253742A CN202111497471.4A CN202111497471A CN114253742A CN 114253742 A CN114253742 A CN 114253742A CN 202111497471 A CN202111497471 A CN 202111497471A CN 114253742 A CN114253742 A CN 114253742A
- Authority
- CN
- China
- Prior art keywords
- task
- execution
- module
- server
- distributed
- 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 30
- 150000003839 salts Chemical class 0.000 claims description 5
- 238000012544 monitoring process Methods 0.000 claims description 3
- 230000001360 synchronised effect Effects 0.000 claims description 3
- 244000101724 Apium graveolens Dulce Group Species 0.000 claims 1
- 235000015849 Apium graveolens Dulce Group Nutrition 0.000 claims 1
- 235000010591 Appio Nutrition 0.000 claims 1
- 210000001503 joint Anatomy 0.000 abstract description 2
- 238000012423 maintenance Methods 0.000 description 3
- 238000012986 modification Methods 0.000 description 2
- 230000004048 modification Effects 0.000 description 2
- 241000283084 Balaenoptera musculus Species 0.000 description 1
- 238000004891 communication Methods 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/54—Interprogram communication
- G06F9/546—Message passing systems or structures, e.g. queues
-
- 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/24—Querying
- G06F16/245—Query processing
- G06F16/2455—Query execution
- G06F16/24552—Database cache management
-
- 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/24—Querying
- G06F16/245—Query processing
- G06F16/2458—Special types of queries, e.g. statistical queries, fuzzy queries or distributed queries
- G06F16/2471—Distributed queries
-
- 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
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F2209/00—Indexing scheme relating to G06F9/00
- G06F2209/54—Indexing scheme relating to G06F9/54
- G06F2209/548—Queue
Landscapes
- Engineering & Computer Science (AREA)
- Theoretical Computer Science (AREA)
- Databases & Information Systems (AREA)
- Physics & Mathematics (AREA)
- General Physics & Mathematics (AREA)
- General Engineering & Computer Science (AREA)
- Software Systems (AREA)
- Data Mining & Analysis (AREA)
- Computational Linguistics (AREA)
- Probability & Statistics with Applications (AREA)
- Mathematical Physics (AREA)
- Fuzzy Systems (AREA)
- Computing Systems (AREA)
- Multi Processors (AREA)
Abstract
本发明提供了一种无服务器框架分布式执行方法及系统,涉及分布式执行系统技术领域,所述无服务器框架分布式执行方法包括以下步骤:客户通过外部业务系统创建任务请求;系统的任务管理模块将收到的任务请求分发至不同的任务调度队列中;并反馈外部业务系统唯一任务ID以供查询任务信息;系统的worker模块对任务调度队列进行监听,并调用worker模块自带的任务执行模块执行任务;任务执行模块对任务类型进行判断和标识,并记录到缓存数据库中;将不同类型的任务请求分配至不同的节点进行执行。本发明的无服务器框架分布式执行方法及系统整合了多种任务分发、执行途径,可以独立与业务系统执行也可以与各种业务系统对接,实现分布式任务执行自动化。
Description
技术领域
本发明涉及分布式执行系统技术领域,尤其涉及一种无服务器框架分布式执行方法及系统。
背景技术
当前IT运维工具中存在多种不同平台,如国外产品Ansible,Salt,国内产品如蓝鲸、优维。其中有些工具是无客户端模式,如Ansible;其他则是客户端/服务器模式,如salt、优维,由此引发不同平台各自的优劣势不同,匹配、适合其使用的场景不同。
因此在一般应用场景中,通常用户都会选择以上一种或多种工具来满足其不同的使用需求,难以用一种工具同时满足所有需求。
在互联网应用中,由公有云厂商所带来的广泛的IT资源获取使得应用服务器还可能分布在不同地域、不同国家,这些需要管理的服务器、设备在地理位置上的分布导致集中式的管理工具已经难以维系,由此再引入新的分布式管理系统。其基本特性就是借助类似“代理”的角色负责管理端和被管理端之间的通信、数据交换。这里的代理角色允许根据地域、集群部署,从而能够支持海量的被管理端。
在用户的真实使用场景中,多种工具平台导致其日常管理和使用变得复杂。且不同工具管理、维护方式不同,某些工具,如ansible并未提供集中管理工具,需要用户具备自行开发相应的管理工具的能力。
随着互联网时代的到来,应用的复杂度和规模让用户需要把时间重点关注其“业务”,而非人为“调度”其运维工具去管理海量资产。
用户迫切需要一款能够自动决策、自动调度、具备广泛兼容性的分布式任务执行系统。
发明内容
本发明的目的在于提供一种无服务器框架分布式执行方法及系统,以解决上述技术问题。
为实现上述目的,本发明所述的一种无服务器框架分布式执行方法,包括以下步骤:
(4)客户通过外部业务系统创建任务请求;
(5)系统的任务管理模块将收到的任务请求分发至不同的任务调度队列中;并反馈外部业务系统唯一任务ID以供查询任务信息;
(6)系统的worker模块对任务调度队列进行监听,并调用worker模块自带的任务执行模块执行任务;任务执行模块对任务类型进行判断和标识,并记录到缓存数据库中;将不同类型的任务请求分配至不同的节点进行执行;对任务信息进行记录并上传搜索服务器以供查询。
所述任务信息包括:执行状态、执行过程和执行结果。
进一步地,所述外部业务系统通过API接口创建任务。
优选的,所述任务执行模块采用EXEC执行函数。
更为具体的,所述任务的类型包括:serverless型任务、同步任务、异步任务、采集任务、文件分发和命令任务;上述任务分别采用以下方式执行:
(1)serverless型任务由Docker集群负责执行,记录执行结果并上传服务器;当有多个任务并发时,由Docker集群启动多个容器负责执行;单个任务执行完毕后,销毁对应容器,等待下一次任务;
(2)同步任务,直接返回结果给任务管理模块,任务管理模块更新任务状态,并将整个执行过程记录并上传搜索服务器;
(3)异步任务,先记录任务到缓存数据库中,调用完成后更新结果到搜索服务器中保存,然后通过回调接口返回通知任务管理模块执行结果;任务管理模块根据外部业务系统通过回调Webhook或Websocket推送执行结果;
(4)采集任务/文件分发/命令任务
当存在可用SmartAgent节点,通过SmartAgent服务端分发给指定SmartAgent节点执行;
当不存在可用SmartAgent,调用系统内置ansible或salt执行文件和命令;
执行完成后,更新结果到搜索服务器中保存,然后通过回调接口返回通知任务管理模块执行结果。
一种无服务器框架分布式执行系统,所述分布式执行系统的执行引擎以celery为核心;所述分布式执行系统包括:Task Producer模块、RabbitMQ模块、worker模块、Redis模块和ElasticSearch模块;
Task Producer模块负责任务管理,用以接收外部业务系统创建的任务请求,生成唯一任务ID反馈给外部业务系统,并将任务分发至RabbitMQ模块中Exchange的不同队列queue中;
Worker模块用以监听任务调度队列收到的任务请求,并调用worker模块自带的exec模块进行任务执行;exec模块对任务类型进行判断和标识,并记录到Redis模块中;exec模块将不同类型的任务分配至不同的节点进行执行;执行状态、执行过程和执行结果记录到ElasticSearch模块;
ElasticSearch模块用以记录和查询任务的执行状态、执行过程和执行结果;唯一任务ID为查询的依据。
有益效果:
本发明的无服务器框架分布式执行方法及系统整合了多种任务分发、执行途径,可以独立与业务系统执行也可以与各种业务系统对接,实现分布式任务执行自动化。
附图说明
图1为本发明无服务器框架分布式执行方法及系统流程示意图。
具体实施方式
为使本发明的目的、技术方案和优点更加清楚,下面将结合本发明的附图,对本发明实施例中的技术方案进行清楚、完整地描述,显然,所描述的实施例是本发明的一部分实施例,而不是全部的实施例。基于本发明中的实施例,本领域普通技术人员在没有作出创造性劳动前提下所获得的所有其他实施例,都属于本发明保护的范围。除非另外定义,此处使用的技术术语或者科学术语应当为本发明所属领域内具有一般技能的人士所理解的通常意义。本文中使用的“包括”等类似的词语意指出现该词前面的元件或者物件涵盖出现在该词后面列举的元件或者物件及其等同,而不排除其他元件或者物件。
针对现有技术存在的问题,本发明的实施例提供了一种无服务器框架分布式执行方法及系统。
实施例
如图1所示,一种无服务器框架分布式执行方法,包括以下步骤:
(1)客户通过外部业务系统创建任务请求;
(2)系统的任务管理模块将收到的任务请求分发至不同的任务调度队列中;并反馈外部业务系统唯一任务ID以供查询任务信息;
(3)系统的worker模块对任务调度队列进行监听,并调用worker模块自带的任务执行模块执行任务;任务执行模块对任务类型进行判断和标识,并记录到缓存数据库中;将不同类型的任务请求分配至不同的节点进行执行;对任务信息进行记录并上传搜索服务器以供查询。
所述任务信息包括:执行状态、执行过程和执行结果。
所述外部业务系统通过API接口创建任务。
所述任务执行模块采用EXEC执行函数。
所述任务的类型包括:serverless型任务、同步任务、异步任务、采集任务、文件分发和命令任务;上述任务分别采用以下方式执行:
(1)serverless型任务由Docker集群负责执行,记录执行结果并上传服务器;当有多个任务并发时,由Docker集群启动多个容器负责执行;单个任务执行完毕后,销毁对应容器,等待下一次任务;
(2)同步任务,直接返回结果给任务管理模块,任务管理模块更新任务状态,并将整个执行过程记录并上传搜索服务器;
(3)异步任务,先记录任务到缓存数据库中,调用完成后更新结果到搜索服务器中保存,然后通过回调接口返回通知任务管理模块执行结果;任务管理模块根据外部业务系统通过回调Webhook或Websocket推送执行结果;
(4)采集任务/文件分发/命令任务
当存在可用SmartAgent节点,通过SmartAgent服务端分发给指定SmartAgent节点执行;
当不存在可用SmartAgent,调用系统内置ansible或salt执行文件和命令;
执行完成后,更新结果到搜索服务器中保存,然后通过回调接口返回通知任务管理模块执行结果。
为实施上述方法,本实施例还提供了一种无服务器框架分布式执行系统,所述分布式执行系统的执行引擎以celery为核心;所述分布式执行系统包括:Task Producer模块、RabbitMQ模块、worker模块、Redis模块和ElasticSearch模块;
Task Producer模块负责任务管理,即上述方法中的任务管理模块;用以接收外部业务系统创建的任务请求,生成唯一任务ID反馈给外部业务系统,并将任务分发至RabbitMQ模块中Exchange的不同队列queue中;RabbitMQ模块中Exchange的不同队列queue为上述提及的任务调度队列。
Worker模块用以监听任务调度队列收到的任务请求,并调用worker模块自带的exec模块进行任务执行;exec模块对任务类型进行判断和标识,并记录到Redis模块中;exec模块将不同类型的任务分配至不同的节点进行执行;执行状态、执行过程和执行结果记录到ElasticSearch模块;exec模块为上述提及的任务执行模块;Redis模块即为上述提及的缓存数据库。
ElasticSearch模块用以记录和查询任务的执行状态、执行过程和执行结果;唯一任务ID为查询的依据。ElasticSearch模块即上述提及的搜索服务器。通过输入唯一任务ID就可以查询到任务执行的相关信息,例如任务执行状态、执行结果、历史信息。
虽然在上文中详细说明了本发明的实施方式,但是对于本领域的技术人员来说显而易见的是,能够对这些实施方式进行各种修改和变化。但是,应理解,这种修改和变化都属于权利要求书中所述的本发明的范围和精神之内。而且,在此说明的本发明可有其它的实施方式,并且可通过多种方式实施或实现。
Claims (6)
1.一种无服务器框架分布式执行方法,其特征在于,所述无服务器框架分布式执行方法包括以下步骤:
(1)客户通过外部业务系统创建任务请求;
(2)系统的任务管理模块将收到的任务请求分发至不同的任务调度队列中;并反馈外部业务系统唯一任务ID以供查询任务信息;
(3)系统的worker模块对任务调度队列进行监听,并调用worker模块自带的任务执行模块执行任务;任务执行模块对任务类型进行判断和标识,并记录到缓存数据库中;将不同类型的任务请求分配至不同的节点进行执行;对任务信息进行记录并上传搜索服务器以供查询。
2.根据权利要求1所述的一种无服务器框架分布式执行方法,其特征在于,任务信息包括:执行状态、执行过程和执行结果。
3.根据权利要求1或2所述的一种无服务器框架分布式执行方法,其特征在于,所述外部业务系统通过API接口创建任务。
4.根据权利要求3所述的一种无服务器框架分布式执行方法,其特征在于,所述任务执行模块采用EXEC执行函数。
5.根据权利要求4所述的一种无服务器框架分布式执行方法,其特征在于,所述任务的类型包括:serverless型任务、同步任务、异步任务、采集任务、文件分发和命令任务;不同类型的任务分别采用以下方式执行:
(1)serverless型任务,由Docker集群负责执行,记录执行结果并上传服务器;当有多个任务并发时,由Docker集群启动多个容器负责执行;单个任务执行完毕后,销毁对应容器,等待下一次任务;
(2)同步任务,直接返回结果给任务管理模块,任务管理模块更新任务状态,并将整个执行过程记录并上传搜索服务器;
(3)异步任务,先记录任务到缓存数据库中,调用完成后更新结果到搜索服务器中保存,然后通过回调接口返回通知任务管理模块执行结果;任务管理模块根据外部业务系统通过回调Webhook或Websocket推送执行结果;
(4)采集任务/文件分发/命令任务
当存在可用SmartAgent节点,通过SmartAgent服务端分发给指定SmartAgent节点执行;
当不存在可用SmartAgent,调用系统内置ansible或salt执行文件和命令;
执行完成后,更新结果到搜索服务器中保存,然后通过回调接口返回通知任务管理模块执行结果。
6.如权利要求1所述的一种无服务器框架分布式执行系统,所述分布式执行系统的执行引擎以celery为核心;其特征在于,所述分布式执行系统包括:Task Producer模块、RabbitMQ模块、worker模块、Redis模块和ElasticSearch模块;
Task Producer模块负责任务管理,用以接收外部业务系统创建的任务请求,生成唯一任务ID反馈给外部业务系统,并将任务分发至RabbitMQ模块中Exchange的不同队列queue中;
Worker模块用以监听任务调度队列收到的任务请求,并调用worker模块自带的exec模块进行任务执行;exec模块对任务类型进行判断和标识,并记录到Redis模块中;exec模块将不同类型的任务分配至不同的节点进行执行;执行状态、执行过程和执行结果记录到ElasticSearch模块;
ElasticSearch模块用以记录和查询任务的执行状态、执行过程和执行结果;唯一任务ID为查询的依据。
Priority Applications (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN202111497471.4A CN114253742A (zh) | 2021-12-09 | 2021-12-09 | 一种无服务器框架分布式执行方法及系统 |
Applications Claiming Priority (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN202111497471.4A CN114253742A (zh) | 2021-12-09 | 2021-12-09 | 一种无服务器框架分布式执行方法及系统 |
Publications (1)
Publication Number | Publication Date |
---|---|
CN114253742A true CN114253742A (zh) | 2022-03-29 |
Family
ID=80791893
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
CN202111497471.4A Pending CN114253742A (zh) | 2021-12-09 | 2021-12-09 | 一种无服务器框架分布式执行方法及系统 |
Country Status (1)
Country | Link |
---|---|
CN (1) | CN114253742A (zh) |
Cited By (1)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN115599519A (zh) * | 2022-10-17 | 2023-01-13 | 安芯网盾(北京)科技有限公司(Cn) | 一种作业调度方法及装置 |
Citations (3)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN111506412A (zh) * | 2020-04-22 | 2020-08-07 | 上海德拓信息技术股份有限公司 | 基于Airflow的分布式异步任务构建、调度系统及方法 |
CN111984440A (zh) * | 2020-09-11 | 2020-11-24 | 苏州浪潮智能科技有限公司 | 一种Celery在线管理及自动执行任务的方法、系统和存储介质 |
US20210286647A1 (en) * | 2020-03-15 | 2021-09-16 | Vmware, Inc. | Embedded persistent queue |
-
2021
- 2021-12-09 CN CN202111497471.4A patent/CN114253742A/zh active Pending
Patent Citations (3)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US20210286647A1 (en) * | 2020-03-15 | 2021-09-16 | Vmware, Inc. | Embedded persistent queue |
CN111506412A (zh) * | 2020-04-22 | 2020-08-07 | 上海德拓信息技术股份有限公司 | 基于Airflow的分布式异步任务构建、调度系统及方法 |
CN111984440A (zh) * | 2020-09-11 | 2020-11-24 | 苏州浪潮智能科技有限公司 | 一种Celery在线管理及自动执行任务的方法、系统和存储介质 |
Cited By (1)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN115599519A (zh) * | 2022-10-17 | 2023-01-13 | 安芯网盾(北京)科技有限公司(Cn) | 一种作业调度方法及装置 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
CN111506412B (zh) | 基于Airflow的分布式异步任务构建、调度系统及方法 | |
US10133797B1 (en) | Distributed heterogeneous system for data warehouse management | |
CN107545338B (zh) | 业务数据处理方法及业务数据处理系统 | |
CN106406993A (zh) | 一种定时任务管理方法和系统 | |
CN111865622B (zh) | 基于规则引擎集群的云服务计量计费方法及系统 | |
CN109905286A (zh) | 一种监控设备运行状态的方法和系统 | |
CN111178837B (zh) | 一种基于微服务架构的智能制造信息系统 | |
CN108848132A (zh) | 一种基于云的配电调度主站系统 | |
CN110532493B (zh) | 数据的处理方法及装置、存储介质和电子装置 | |
CN115567251A (zh) | 用于微服务集群的多业务隔离方法及系统 | |
CN112631680B (zh) | 微服务容器调度系统、方法、装置和计算机设备 | |
CN110377568A (zh) | 一种元数据采集方法及装置 | |
CN114253742A (zh) | 一种无服务器框架分布式执行方法及系统 | |
CN110134533B (zh) | 一种可批量调度数据的系统及方法 | |
CN113220480B (zh) | 分布式的数据任务跨云调度系统及方法 | |
CN108259605B (zh) | 一种基于多数据中心的数据调用系统及方法 | |
CN114706994A (zh) | 一种基于知识库的运维管理系统和方法 | |
CN116991953A (zh) | 数据采集方法、装置、计算机设备及存储介质 | |
CN110225077A (zh) | 变更供应数据的同步方法、装置、计算机设备及计算机存储介质 | |
CN112667393B (zh) | 分布式任务计算调度框架搭建的方法、装置及计算机设备 | |
CN113965538B (zh) | 设备状态消息处理方法、装置及存储介质 | |
CN101017501B (zh) | 使用分布更新事件的语义网数据选择性跟踪的方法和系统 | |
Xu et al. | Supporting collaborative business processes: a BPaaS approach | |
CN110750608B (zh) | 一种基于规则库的空间数据分析自动调度方法 | |
CN113238928A (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 |