CN113360268A - 一种基于容器运行的弱中心化分布式调度系统 - Google Patents
一种基于容器运行的弱中心化分布式调度系统 Download PDFInfo
- Publication number
- CN113360268A CN113360268A CN202110699248.1A CN202110699248A CN113360268A CN 113360268 A CN113360268 A CN 113360268A CN 202110699248 A CN202110699248 A CN 202110699248A CN 113360268 A CN113360268 A CN 113360268A
- Authority
- CN
- China
- Prior art keywords
- scheduling
- container
- reading
- task
- process module
- 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 claims description 47
- 230000008569 process Effects 0.000 claims description 44
- 230000002159 abnormal effect Effects 0.000 claims description 13
- 230000005540 biological transmission Effects 0.000 claims description 6
- 238000012544 monitoring process Methods 0.000 claims description 4
- 238000004519 manufacturing process Methods 0.000 claims description 3
- 238000005516 engineering process Methods 0.000 abstract description 4
- 230000007547 defect Effects 0.000 abstract description 2
- 238000012423 maintenance Methods 0.000 description 4
- 238000013461 design Methods 0.000 description 2
- 230000000694 effects Effects 0.000 description 2
- 230000000007 visual effect Effects 0.000 description 2
- 238000004891 communication Methods 0.000 description 1
- 230000008878 coupling Effects 0.000 description 1
- 238000010168 coupling process Methods 0.000 description 1
- 238000005859 coupling reaction Methods 0.000 description 1
- 238000011161 development Methods 0.000 description 1
- 238000010586 diagram Methods 0.000 description 1
- 230000004069 differentiation Effects 0.000 description 1
- 238000011112 process operation Methods 0.000 description 1
- 238000012545 processing Methods 0.000 description 1
- 238000003860 storage 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/48—Program initiating; Program switching, e.g. by interrupt
- G06F9/4806—Task transfer initiation or dispatching
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F11/00—Error detection; Error correction; Monitoring
- G06F11/30—Monitoring
- G06F11/3003—Monitoring arrangements specially adapted to the computing system or computing system component being monitored
- G06F11/302—Monitoring arrangements specially adapted to the computing system or computing system component being monitored where the computing system component is a software system
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F11/00—Error detection; Error correction; Monitoring
- G06F11/30—Monitoring
- G06F11/3051—Monitoring arrangements for monitoring the configuration of the computing system or of the computing system component, e.g. monitoring the presence of processing resources, peripherals, I/O links, software programs
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F16/00—Information retrieval; Database structures therefor; File system structures therefor
- G06F16/10—File systems; File servers
- G06F16/17—Details of further file system functions
- G06F16/1734—Details of monitoring file system events, e.g. by the use of hooks, filter drivers, logs
-
- 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/28—Databases characterised by their database models, e.g. relational or object models
- G06F16/284—Relational databases
-
- 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/44—Arrangements for executing specific programs
- G06F9/455—Emulation; Interpretation; Software simulation, e.g. virtualisation or emulation of application or operating system execution engines
- G06F9/45533—Hypervisors; Virtual machine monitors
- G06F9/45558—Hypervisor-specific management and integration aspects
-
- 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
- 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/44—Arrangements for executing specific programs
- G06F9/455—Emulation; Interpretation; Software simulation, e.g. virtualisation or emulation of application or operating system execution engines
- G06F9/45533—Hypervisors; Virtual machine monitors
- G06F9/45558—Hypervisor-specific management and integration aspects
- G06F2009/45575—Starting, stopping, suspending or resuming virtual machine instances
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F2209/00—Indexing scheme relating to G06F9/00
- G06F2209/48—Indexing scheme relating to G06F9/48
- G06F2209/482—Application
-
- 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/547—Messaging middleware
Landscapes
- Engineering & Computer Science (AREA)
- Theoretical Computer Science (AREA)
- Physics & Mathematics (AREA)
- Software Systems (AREA)
- General Engineering & Computer Science (AREA)
- General Physics & Mathematics (AREA)
- Databases & Information Systems (AREA)
- Computing Systems (AREA)
- Data Mining & Analysis (AREA)
- Quality & Reliability (AREA)
- Mathematical Physics (AREA)
- Information Retrieval, Db Structures And Fs Structures Therefor (AREA)
Abstract
本发明公开了一种基于容器运行的弱中心化分布式调度系统,所述弱中心化分布式调度系统包括:元数据数据库;控制端,连接元数据数据库,从元数据数据库中读取调度配置参数,同时从元数据数据库中读取调度任务运行数据,从容器云中读取容器运行数据,分析容器运行状态与任务运行数据,发送控制命令至消息中间件;容器云,读取元数据库中的配置调度信息,生成调度任务,同时执行调度程序,并将运行数据发送并存储至数据缓冲区,从消息中间件中读取并执行控制命令。本发明弥补了传统调度难管理不易维护的不足;配套可视化的管理ui,所有调度均可视化配置以及部署,降低了开发调度任务的技术门槛,让不懂技术的业务员也可以配置调度程序。
Description
技术领域
本发明涉及调度技术领域,尤其涉及一种基于容器运行的弱中心化分布式调度系统。
背景技术
在申请号为CN201511031897.5的发明专利申请文件中提出了一种分布式任务调度方法及系统,其中说到:当用户使用应用程序,要求提供某一服务时,系统会自动形成一个任务, 而同时有大量用户下单,生成大量不同的定时任务,此时为了更好的客户体验,需要任务调度系统对大量不同的定时任务进行灵活配置,并要求提高精准高可用的任务触发功能,支持多次重复的调度任务。而现有的任务调度方法及系统对大量不同的定时任务难以灵活配置,且任务触发功能不够精准。
目前调度技术呈两级分化的态势,一种是传统大型软件自带的调度功能,比如数据库自带的调度功能,这种调度基本上不具备扩展,实用性有限,比如数据库自带的调度功能只能执行数据库的任务,并且会随着软件系统自身的崩塌而崩塌。另一种是面向互联网的分布式调度框架比如YARN、Mesos,此类均属调度框架,需要进行大量的二次开发才能满足自身的业务需求,且使用场景一般在大批量数据处理作业上,因此适用性有限。因此在面向B端以及G端的传统软件行业在任务调度管理上面很尴尬,大部分任务调度分散数据库、操作系统以及其他软件上面,缺乏统一管理,基本不具备运维功能。
发明内容
本发明的目的在于提供及一种基于容器运行的弱中心化分布式调度系统,旨在解决现有技术中,大部分任务调度分散数据库、操作系统以及其他软件上面,缺乏统一管理,基本不具备运维功能的问题。
为实现上述目的,本发明提出一种基于容器运行的弱中心化分布式调度系统,所述弱中心化分布式调度系统包括:
元数据数据库;
控制端,连接元数据数据库,用于从元数据数据库中读取调度配置参数,同时从元数据数据库中读取调度任务运行数据,从容器云中读取容器运行数据,分析容器运行状态与任务运行数据,发送控制命令至消息中间件;
容器云,用于读取元数据库中的配置调度信息,生成调度任务,同时执行调度程序,并将运行数据发送并存储至数据缓冲区,从消息中间件中读取并执行控制命令。
进一步的,所述控制端包括:
管理进程模块:用于登陆调度管理页面,配置调度参数及调度目标程序,然后将配置结果存入元数据库;
监控进程模块:用于从元数据库中读取调度任务运行数据及从容器云中读取容器运行数据,同时分析容器运行状态和任务运行数据;
预警进程模块:用于读取消息中间件预警消息,并发送异常消息至聊天软件。
进一步的,所述容器云包括:
调度进程模块:用于从调度文件中读取调度配置信息,同时启动调度进程,并发送进程id至控制进程模块,同时从元数据库中读取上次运行信息,若没有或读取失败,则根据配置文件生成调度任务,并将生成的任务发送给日志进程模块,然后执行调度程序,并发送运行数据给数据缓冲区;
日志进程模块:用于从运行数据缓冲区中读取运行日志,并将其发送给元数据库;
控制进程模块:用于从消息中间件中读取控制命令,然后执行控制命令。
进一步的,所述日志进程模块还用于判断运行日志是否发送成功,若发送失败,则将运行日志存入数据缓冲区。
进一步的,所述管理进程模块还包括:
对存入配置结果后的元数据库进行部署,然后从元数据库中读取调度配置数据,并生成yaml格式的配置文件,制作调度程序镜像,并推送至镜像仓库,最后在容器云中启动容器;
对存入配置结果后的元数据库进行管理,发送控制命令至消息中间件。
进一步的,所述监控进程模块还包括:
分析容器运行状态,通过容器管理api读取运行状态,判断是否正常运行,下线异常容器,启动新容器,然后从元数据库读取计划任务,继续运行异常容器未执行的任务;
分析任务运行数据,读取任务运行状态、错误信息,比对计划运行时间是否过期,然后发送异常消息至消息中间件。
本发明具有以下优势:
1、弥补了传统调度难管理不易维护的不足;
2、将调度与业务系统剥离,降低了业务系统与调度程序的耦合度;
3、配套可视化的管理ui,所有调度均可视化配置以及部署,降低了开发调度任务的技术门槛,让不懂技术的业务员也可以配置调度程序;
4、分布式部署架构配合调度元数据库,实现故障节点无缝切换,即新调度节点上线后可从元数据库获取任务执行数据,自动从故障点开始执行调度任务。
附图说明
图1为系统平台架构图;
图2为管理进程运行流程图;
图3为监控进程运行流程图;
图4为预警进程运行流程图;
图5为调度进程运行流程图;
图6为日志进程运行流程图;
图7为控制进程运行流程图;
本发明目的的实现、功能特点及优点将结合实施例,参照附图做进一步说明。
具体实施方式
为了对本发明的技术特征、目的和效果有更加清楚的理解,现对照附图说明本发明的具体实施方式。
在本实施例中,如图1所示,一种基于容器运行的弱中心化分布式调度系统,所述弱中心化分布式调度系统包括:
元数据数据库;
控制端,连接元数据数据库,用于从元数据数据库中读取调度配置参数,同时从元数据数据库中读取调度任务运行数据,从容器云中读取容器运行数据,分析容器运行状态与任务运行数据,发送控制命令至消息中间件;
容器云,用于读取元数据库中的配置调度信息,生成调度任务,同时执行调度程序,并将运行数据发送并存储至数据缓冲区,从消息中间件中读取并执行控制命令。
在本实施例中,所述控制端包括:
如图2所示,管理进程模块:用于登陆调度管理页面,配置调度参数及调度目标程序,然后将配置结果存入元数据库;
如图3所示,监控进程模块:用于从元数据库中读取调度任务运行数据及从容器云中读取容器运行数据,同时分析容器运行状态和任务运行数据;
如图4所示,预警进程模块:用于读取消息中间件预警消息,并发送异常消息至聊天软件。
在本实施例中,所述容器云包括:
如图5所示,调度进程模块:用于从调度文件中读取调度配置信息,同时启动调度进程,并发送进程id至控制进程模块,同时从元数据库中读取上次运行信息,若没有或读取失败,则根据配置文件生成调度任务,并将生成的任务发送给日志进程模块,然后执行调度程序,并发送运行数据给数据缓冲区;
如图6所示,日志进程模块:用于从运行数据缓冲区中读取运行日志,并将其发送给元数据库;
如图7所示,控制进程模块:用于从消息中间件中读取控制命令,然后执行控制命令。
在本实施例中,所述日志进程模块还用于判断运行日志是否发送成功,若发送失败,则将运行日志存入数据缓冲区。
在本实施例中,所述管理进程模块还包括:
对存入配置结果后的元数据库进行部署,然后从元数据库中读取调度配置数据,并生成yaml格式的配置文件,制作调度程序镜像,并推送至镜像仓库,最后在容器云中启动容器;
对存入配置结果后的元数据库进行管理,发送控制命令至消息中间件。
在本实施例中,所述监控进程模块还包括:
分析容器运行状态,通过容器管理api读取运行状态,判断是否正常运行,下线异常容器,启动新容器,然后从元数据库读取计划任务,继续运行异常容器未执行的任务;
分析任务运行数据,读取任务运行状态、错误信息,比对计划运行时间是否过期,然后发送异常消息至消息中间件。
需要补充的是,本发明能实现以下技术效果:
1.预先生成执行计划,可定时对指定周期内的任务运行情况进行自动复盘,支持通过配置实现对失败任务进行重启。
2.使用容器技术实现自动化部署,并通过容器编排实现任务节点高可用。
3.弱中心化设计,即与中心节点失去联系,也能正常自动生成计划以及按计划执行任务,当与中心节点恢复通讯后,自动上传执行计划以及执行日志。当与中心相连时,能实现自动运维(监控、异常预警等)以及任务节点高可用。
4.调度任务均通过可视化配置以及自动化部署,零编码实现任务运行以及维护。
5.支持调度的程序多样,包含:
关系型数据库的sql、存储过程、函数;
操作系统命令;
可执行的单体程序。
Claims (6)
1.一种基于容器运行的弱中心化分布式调度系统,其特征在于,所述弱中心化分布式调度系统包括:
元数据数据库;
控制端,连接元数据数据库,用于从元数据数据库中读取调度配置参数,同时从元数据数据库中读取调度任务运行数据,从容器云中读取容器运行数据,分析容器运行状态与任务运行数据,发送控制命令至消息中间件;
容器云,用于读取元数据库中的配置调度信息,生成调度任务,同时执行调度程序,并将运行数据发送并存储至数据缓冲区,从消息中间件中读取并执行控制命令。
2.如权利要求1所述的一种基于容器运行的弱中心化分布式调度系统,其特征在于,所述控制端包括:
管理进程模块:用于登陆调度管理页面,配置调度参数及调度目标程序,然后将配置结果存入元数据库;
监控进程模块:用于从元数据库中读取调度任务运行数据及从容器云中读取容器运行数据,同时分析容器运行状态和任务运行数据;
预警进程模块:用于读取消息中间件预警消息,并发送异常消息至聊天软件。
3.如权利要求1所述的一种基于容器运行的弱中心化分布式调度系统,其特征在于,所述容器云包括:
调度进程模块:用于从调度文件中读取调度配置信息,同时启动调度进程,并发送进程id至控制进程模块,同时从元数据库中读取上次运行信息,若没有或读取失败,则根据配置文件生成调度任务,并将生成的任务发送给日志进程模块,然后执行调度程序,并发送运行数据给数据缓冲区;
日志进程模块:用于从运行数据缓冲区中读取运行日志,并将其发送给元数据库;
控制进程模块:用于从消息中间件中读取控制命令,然后执行控制命令。
4.如权利要求3所述的一种基于容器运行的弱中心化分布式调度系统,其特征在于,所述日志进程模块还用于判断运行日志是否发送成功,若发送失败,则将运行日志存入数据缓冲区。
5.如权利要求2所述的一种基于容器运行的弱中心化分布式调度系统,其特征在于,所述管理进程模块还包括:
对存入配置结果后的元数据库进行部署,然后从元数据库中读取调度配置数据,并生成yaml格式的配置文件,制作调度程序镜像,并推送至镜像仓库,最后在容器云中启动容器;
对存入配置结果后的元数据库进行管理,发送控制命令至消息中间件。
6.如权利要求2所述的一种基于容器运行的弱中心化分布式调度系统,其特征在于,所述监控进程模块还包括:
分析容器运行状态,通过容器管理api读取运行状态,判断是否正常运行,下线异常容器,启动新容器,然后从元数据库读取计划任务,继续运行异常容器未执行的任务;
分析任务运行数据,读取任务运行状态、错误信息,比对计划运行时间是否过期,然后发送异常消息至消息中间件。
Priority Applications (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN202110699248.1A CN113360268A (zh) | 2021-06-23 | 2021-06-23 | 一种基于容器运行的弱中心化分布式调度系统 |
Applications Claiming Priority (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN202110699248.1A CN113360268A (zh) | 2021-06-23 | 2021-06-23 | 一种基于容器运行的弱中心化分布式调度系统 |
Publications (1)
Publication Number | Publication Date |
---|---|
CN113360268A true CN113360268A (zh) | 2021-09-07 |
Family
ID=77535991
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
CN202110699248.1A Pending CN113360268A (zh) | 2021-06-23 | 2021-06-23 | 一种基于容器运行的弱中心化分布式调度系统 |
Country Status (1)
Country | Link |
---|---|
CN (1) | CN113360268A (zh) |
Citations (5)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN101800762A (zh) * | 2009-12-30 | 2010-08-11 | 中兴通讯股份有限公司 | 一种对多个业务进行融合的业务云系统及业务实现方法 |
CN105677836A (zh) * | 2016-01-05 | 2016-06-15 | 北京汇商融通信息技术有限公司 | 一种同时支持离线数据和实时在线数据的大数据处理解决系统 |
CN107193643A (zh) * | 2017-03-28 | 2017-09-22 | 中国科学院信息工程研究所 | 一种高可靠分布式数据流实时统计方法及系统 |
CN111381940A (zh) * | 2020-05-29 | 2020-07-07 | 上海冰鉴信息科技有限公司 | 分布式数据处理方法及装置 |
CN112698953A (zh) * | 2021-01-11 | 2021-04-23 | 国网电力科学研究院武汉南瑞有限责任公司 | 一种基于微服务的电网智能运检平台 |
-
2021
- 2021-06-23 CN CN202110699248.1A patent/CN113360268A/zh active Pending
Patent Citations (6)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN101800762A (zh) * | 2009-12-30 | 2010-08-11 | 中兴通讯股份有限公司 | 一种对多个业务进行融合的业务云系统及业务实现方法 |
US20120317164A1 (en) * | 2009-12-30 | 2012-12-13 | Zte Corporation | Services Cloud System and Service Realization Method |
CN105677836A (zh) * | 2016-01-05 | 2016-06-15 | 北京汇商融通信息技术有限公司 | 一种同时支持离线数据和实时在线数据的大数据处理解决系统 |
CN107193643A (zh) * | 2017-03-28 | 2017-09-22 | 中国科学院信息工程研究所 | 一种高可靠分布式数据流实时统计方法及系统 |
CN111381940A (zh) * | 2020-05-29 | 2020-07-07 | 上海冰鉴信息科技有限公司 | 分布式数据处理方法及装置 |
CN112698953A (zh) * | 2021-01-11 | 2021-04-23 | 国网电力科学研究院武汉南瑞有限责任公司 | 一种基于微服务的电网智能运检平台 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
CN101076736B (zh) | 在监督处理控制系统中配置冗余的设备和方法 | |
CN101065731B (zh) | 用于处理控制网络环境的冗余主机对运行时间系统和方法 | |
CN101095089B (zh) | 在故障切换伙伴之间保持透明性的方法和系统 | |
CN107016480B (zh) | 任务调度方法、装置及系统 | |
CN106406993A (zh) | 一种定时任务管理方法和系统 | |
CN111506412A (zh) | 基于Airflow的分布式异步任务构建、调度系统及方法 | |
CN113569987A (zh) | 模型训练方法和装置 | |
CN102932210A (zh) | 一种PaaS云平台的节点监控方法和系统 | |
CN113626280B (zh) | 集群状态控制方法、装置、电子设备及可读存储介质 | |
CN109766194B (zh) | 基于消息的低耦合计划任务组件的实现方法及其系统 | |
CN112910937B (zh) | 容器集群中的对象调度方法、装置、服务器和容器集群 | |
CN107870982B (zh) | 数据处理方法、系统和计算机可读存储介质 | |
CN104021078A (zh) | 软件监控装置及方法 | |
CN104601668A (zh) | 基于状态管理的数据推送方法、装置和系统 | |
CN108089915A (zh) | 基于消息队列的业务控件化处理的方法及系统 | |
CN114035925A (zh) | 一种工作流调度方法、装置、设备及可读存储介质 | |
CN110619014A (zh) | 一种基于etl的数据抽取方法 | |
CN110569113A (zh) | 分布式任务的调度方法及系统、计算机可读存储介质 | |
CN113609048B (zh) | 一种电力物联网云边业务协同交互方法 | |
CN110798339A (zh) | 一种基于分布式任务调度框架的任务容灾方法 | |
CN117130730A (zh) | 面向联邦Kubernetes集群的元数据管理方法 | |
CN113360268A (zh) | 一种基于容器运行的弱中心化分布式调度系统 | |
CN113194096A (zh) | 一种基于分布式架构的任务调度实时追踪方法及系统 | |
CN113934711B (zh) | 一种自动化部署gbase8s集群的方法 | |
CN112379989B (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 |