一种分布式调度系统架构和微服务工作流调度方法技术方案

技术编号:30441431 阅读:21 留言:0更新日期:2021-10-24 18:29
本发明专利技术涉及一种分布式调度系统架构和微服务工作流调度方法,属于计算机领域。本发明专利技术采用分布式架构设计微服务调度的控制中心,将控制逻辑与业务逻辑分离,从试验结果来看,将业务逻辑分离出去后,并且采用异步任务的方式,这时占用执行线程的时间会大幅缩短,微服务响应速度大幅提升。采用分布式锁实现后台微服务工作流的有序调度和容错,在相同的线程池数量下,能够明显提高调度中心的并发能力和高可用能力。可用能力。可用能力。

【技术实现步骤摘要】
一种分布式调度系统架构和微服务工作流调度方法


[0001]本专利技术属于计算机领域,具体涉及一种基于分布式调度系统架构和微服务工作流调度方法。

技术介绍

[0002]主流的微服务系统通过微服务网关产品实现对微服务应用的管控治理。微服务网关负责处理微服务模块间的接口服务调用,会涉及到安全、路由、代理、监控、日志、限流等调度工作,形成一个中心化的调度系统架构。对于中心化架构,所有的API接口服务都会在微服务网关中进行注册,相当于微服务网关基于原始的业务服务API接口做了一层封装,然后发布代理服务。因此对于所有微服务接口服务的调用,都可以在微服务网关中进行拦截。微服务网关实现的安全、日志、限流、路由等调度能力,全部都以这个拦截为基础。同时各个能力的实现又可以配置为拦截过程中的各个独立插件。
[0003]中心化的微服务网关作为所有服务的API入口,随着业务规模的扩大,容易遭遇性能瓶颈。每个用户请求访问后台应用时只要涉及服务之间的交互,则都会从微服务网关进行路由,服务上量以后,内部服务之间的交互调用大量叠加在微服务网关上,会造成微服务网关过负载、后台服务响应迟缓的问题。另一个问题是一旦微服务网关出现了问题,则群龙无首,整个集群就会崩溃。
[0004]为了解决这个问题,一些解决方案在架构模式上采用了多网关实例搭配负载均衡的设计,实现负载分担和高可用,这种模式的缺点在于调度控制不够灵活。也一些微服务系统提出了去中心化架构,如SericeMesh服务化网关,通过在服务端植入控制功能的SDK包,后台服务直接进行点对点交互,实际服务调用请求和数据流并不会通过控制中心;这样的缺点是需要针对微服务设计和植入SDK包,需要较大工作量,也不适用于工作流任务的复杂调度。

技术实现思路

[0005](一)要解决的技术问题
[0006]本专利技术要解决的技术问题是如何提供一种分布式调度系统架构和微服务工作流调度方法,以解决中心化的微服务网关容易遭遇性能瓶颈的问题。
[0007](二)技术方案
[0008]为了解决上述技术问题,本专利技术提出一种分布式调度系统架构,该系统架构包括微服务注册中心eureka、调度中心、执行节点、调度数据库和业务数据库,调度中心包括多个调度节点;
[0009]调度节点、执行节点都以微服务形式进行分布式部署;各节点的角色、API地址信息都在微服务中心eureka上进行注册,并统一由微服务注册中心eureka进行维护;
[0010]调度节点包括远程调用控制器、回调控制器、管理运行时和核心调度器;其中,核心调度器基于quartz构建;管理运行时用于实现各种管理功能;调度节点与执行节点的核
心通信包括远程调用(RMS)和回调(Cal lback),通过远程调用控制器向执行节点发送执行指令,通过回调控制器接收从执行节点的执行器返回的作业运行结果,复杂的作业流序列可通过作业管理组件从执行节点的作业链模块接收;
[0011]调度数据库连接调度中心,用于持久化存储调度相关的数据;
[0012]执行节点是嵌入在各个微服务中的一个执行模块,包括执行器、作业链和业务bean;执行器执行任务,并通过回调接口将结果返回调度中心;作业链组合任务的执行顺序和依赖关系,满足复杂作业调度需求;业务bean是执行节点与微服务嵌合的载体;
[0013]业务数据库连接执行节点,用于存储持久化微服务应用的服务端数据。
[0014]进一步地,所述调度节点的管理功能包括作业管理、监控管理、日志管理、配置管理、触发器管理和调度日志,并提供Restful接口和web页面动态展现。
[0015]进一步地,所述调度数据库存储的数据包括任务序列、监控数据、日志数据和配置数据。
[0016]进一步地,所述调度节点和所述执行节点间通信通过http协议的API接口进行远程调用和结果回调。
[0017]进一步地,所述调度节点通过远程调用控制器向执行节点发送同步或异步执行指令,执行器支持同步和异步两种方式执行任务,并通过回调接口将结果返回调度中心。
[0018]本专利技术还提供一种基于分布式调度系统架构的微服务工作流调度方法,其特征在于,该方法包括如下步骤,
[0019]S1、调度节点从任务调度线程池中获取空闲线程,通过新线程访问调度数据库以获取任务;若有任务需要执行,则进入步骤S2;否则,进入休眠状态,直至唤醒后重新开始本步骤;
[0020]S2、调度节点通过竞争获取流程锁;流程锁将分配给分布式调度中心中的最优节点,即选举成为管理节点,未获取到所锁的节点将阻塞直至获得流程锁;
[0021]S3、管理节点开启事务,从任务数据库中取出第一条任务,并判断指令类型,提交到任务队列中,以远程调用执行节点,之后管理节点删除任务数据库中这条任务,关闭事务,并记录日志信息;
[0022]S4、管理节点释放流程锁,再释放线程资源,线程回到线程池中,以供下一任务调度。
[0023]进一步地,调度节点以非阻塞的形式调用执行节点,不需要等待执行节点结果回调即可释放流程锁和线程。
[0024]进一步地,当管理节点/执行节点获取到的指令是“资源不足”时,则将阻塞的线程挂起,让资源不足挂起的流程重新唤醒执行。
[0025]进一步地,当管理节点发生故障或者因网络抖动失去心跳时,执行如下的管理节点容错流程:
[0026](1)调度中心监听到管理节点故障事件,触发容错机制;
[0027](2)可用的调度节点竞争容错锁,得到容错锁的调度节点成为容错管理节点,容错管理节点广播容错告警通知并记录日志信息;
[0028](3)容错管理节点查询调用来源为原故障节点的任务实例,更新这些实例的调用来源为Nul l,并生成新的任务指令;
[0029](4)释放容错锁,容错完成。
[0030]进一步地,容错完成之后还包括如下步骤:重新由调度中心进行线程调度,新管理节点根据监控到新提交任务的不同状态进行接管;对“正在运行”的任务监控其任务实例的状态;对“提交成功”的任务需要判断任务队列中是否已经存在,如果存在则同样监控任务实例的状态,如果不存在则重新提交任务实例。
[0031](三)有益效果
[0032]本专利技术提出一种分布式调度系统架构和微服务工作流调度方法,本专利技术采用分布式架构设计微服务调度的控制中心,将控制逻辑与业务逻辑分离,从试验结果来看,将业务逻辑分离出去后,并且采用异步任务的方式,这时占用执行线程的时间会大幅缩短,微服务响应速度大幅提升。采用分布式锁实现后台微服务工作流的有序调度和容错,在相同的线程池数量下,能够明显提高调度中心的并发能力和高可用能力。
附图说明
[0033]图1为本专利技术分布式调度系统架构图;
[0034]图2为本专利技术分布式调度实施例流程图;
[0035]图3为本专利技术分布式调度容错流程图。
具体实施方式
[0036]为使本专利技术的目的、内容和优点更加清楚,下面结合附本文档来自技高网
...

【技术保护点】

【技术特征摘要】
1.一种分布式调度系统架构,其特征在于,该系统架构包括微服务注册中心eureka、调度中心、执行节点、调度数据库和业务数据库,调度中心包括多个调度节点;调度节点、执行节点都以微服务形式进行分布式部署;各节点的角色、API地址信息都在微服务中心eureka上进行注册,并统一由微服务注册中心eureka进行维护;调度节点包括远程调用控制器、回调控制器、管理运行时和核心调度器;其中,核心调度器基于quartz构建;管理运行时用于实现各种管理功能;调度节点与执行节点的核心通信包括远程调用(RMS)和回调(Callback),通过远程调用控制器向执行节点发送执行指令,通过回调控制器接收从执行节点的执行器返回的作业运行结果,复杂的作业流序列可通过作业管理组件从执行节点的作业链模块接收;调度数据库连接调度中心,用于持久化存储调度相关的数据;执行节点是嵌入在各个微服务中的一个执行模块,包括执行器、作业链和业务bean;执行器执行任务,并通过回调接口将结果返回调度中心;作业链组合任务的执行顺序和依赖关系,满足复杂作业调度需求;业务bean是执行节点与微服务嵌合的载体;业务数据库连接执行节点,用于存储持久化微服务应用的服务端数据。2.如权利要求1所述的分布式调度系统架构,其特征在于,所述调度节点的管理功能包括作业管理、监控管理、日志管理、配置管理、触发器管理和调度日志,并提供Restful接口和web页面动态展现。3.如权利要求1所述的分布式调度系统架构,其特征在于,所述调度数据库存储的数据包括任务序列、监控数据、日志数据和配置数据。4.如权利要求1所述的分布式调度系统架构,其特征在于,所述调度节点和所述执行节点间通信通过http协议的API接口进行远程调用和结果回调。5.如权利要求1所述的分布式调度系统架构,其特征在于,所述调度节点通过远程调用控制器向执行节点发送同步或异步执行指令,执行器支持同步和异步两种方式执行任务,并通过回调接口将结果返回调度中心。6.一种基于权利要求1

...

【专利技术属性】
技术研发人员:许健齐海乐宋茹张艳丽
申请(专利权)人:北京计算机技术及应用研究所
类型:发明
国别省市:

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

1