基于微服务的低入侵分布式定时任务调度系统及方法技术方案

技术编号:24251284 阅读:48 留言:0更新日期:2020-05-22 23:26
本发明专利技术公开了一种基于微服务的低入侵分布式定时任务调度系统及方法,业务系统集群内每个微服务应用实例启动时,通过注册客户端在注册中心集群的各注册中心上进行注册上线;各注册中心根据微服务实例应用名自动划分应用服务组,将提供相同服务的微服务实例注册到同一个应用服务组内;定时任务触发时,调度单元根据调度模式,计算同一组内各微服务应用实例的调度结果,确定当前服务是否为任务执行节点。本发明专利技术调度管理分散独立化,注册服务节点关系平等化,实现了低入侵的实现分布式任务调度,保证了注册中心服务节点故障时的服务不中断。

Low intrusion distributed scheduled task scheduling system and method based on microservice

【技术实现步骤摘要】
基于微服务的低入侵分布式定时任务调度系统及方法
本专利技术属于分布式任务调度领域,具体涉及到一种基于微服务的低入侵分布式定时任务调度系统。
技术介绍
在很多应用系统中,常常会有系统内部的定时执行一些任务。比如,销售系统的订单超时状态判断、定时更新缓存数据、定时给指定用户发送会议邮件,甚至是定期做一些报表数据统计。常见的处理方式有线程的while(true)和sleep组合、使用java.util.Timer定时器触发任务又或者是使用quartz、springtask等框架。貌似这些方法可以完美的解决方案任务调度是设定某个时间点自动触发的任务,任务按设定的时间规律去执行。实际在单机应用系统确实没有问题,但是如今为保证服务的高可用,服务部署都是集群化的,当这些方法应用于集群环境时,不可避免的会造成重复执行。当然也有解决方案,如依赖数据库,将任务执行状态持久化下来。也可采用目前行业中应用比较成熟的分布式定时任务调度系统如:xxl-job、Elastic-job、Saturn等。不论是采用成熟的任务调度系统方案,还是依赖数据库持久化,都会有一些问题,如对业务系统造成重度入侵,即业务系统要进行大量开发融入调度框架,或者注册中心服务节点故障无法保证服务不中断。
技术实现思路
本专利技术的目的在于提供一种基于微服务的低入侵分布式定时任务调度系统及方法。实现本专利技术目的的技术解决方案为:一种基于微服务的低入侵分布式定时任务调度系统,包括业务系统集群和注册中心集群,其中:所述业务系统集群包括多个微服务应用实例,每个微服务应用实例设置注册客户端和调度单元,所述注册客户端用于获取微服务应用实例信息,发送给注册中心进行注册;所述调度单元用于根据调度模式对任务对应微服务应用组的各个微服务应用实例进行调度运算,确定任务执行节点;所述注册中心集群包括多个注册中心,所述注册中心用于根据应用实例信息对微服务应用实例进行分组存储,并将注册信息在各注册中心之间同步。所述注册中心集群的各个注册中心不分主次,注册客户端在向某个注册中心发送注册信息时,如果发现连接失败,则会自动切换至其它节点。所述注册中心与注册客户端交互过程中,心跳如出现断链开,注册中心会主动重连,重连超过阀值后,判定应用实例不可用,从注册列表中移除,不会参与后续的调度运算。所述注册中心集群设置自我保护机制,在部分注册中心与客户端出现网络故障时触发,包括:(1)注册中心不再从注册列表中移除因为长时间没收到心跳而应该过期的服务,但会标记服务状态为未知,未知状态的实例信息不参与调度计算;(2)注册中心仍能接收新服务的注册和查询请求,保证当前注册中心依然可用;(3)当网络稳定时,新的注册信息会被同步到其他注册中心。所述调度单元支持最早注册模式、轮询模式和资源优先模式三种调度计算模式。所述注册中心集群设置固定的有序链表,任务按照有序链表的路由顺序找到当前最早的注册中心获取应用实例信息,进行调度计算,其他注册中心为备份,当前注册中心故障时,则从有序链表的下一个注册中心获取信息。所述业务系统集群根据微服务应用组的功能进行命名,微服务应用实例注册时,根据微服务应用实例的应用名将其划分到对应的应用服务组内。一种基于微服务的低入侵分布式定时任务调度方法,包括如下步骤:业务系统集群的微服务应用实例启动时,通过注册客户端在注册中心的注册中心上进行注册;注册中心集群的注册中心根据应用实例信息对微服务应用实例进行分组存储和注册信息同步;定时任务触发时,微服务应用实例的调度单元根据调度模式,计算任务对应微服务应用组内各微服务应用实例的调度结果,确定任务执行节点。一种计算机设备,包括存储器、处理器及存储在存储器上并可在处理器上运行的计算机程序,所述处理器执行所述计算机程序时实现以下步骤:业务系统集群的微服务应用实例启动时,通过注册客户端在注册中心的注册中心上进行注册;注册中心集群的注册中心根据应用实例信息对微服务应用实例进行分组存储和注册信息同步;定时任务触发时,微服务应用实例的调度单元根据调度模式,计算任务对应微服务应用组内各微服务应用实例的调度结果,确定任务执行节点。一种计算机可读存储介质,其上存储有计算机程序,所述计算机程序被处理器执行时实现以下步骤:业务系统集群的微服务应用实例启动时,通过注册客户端在注册中心的注册中心上进行注册;注册中心集群的注册中心根据应用实例信息对微服务应用实例进行分组存储和注册信息同步;定时任务触发时,微服务应用实例的调度单元根据调度模式,计算任务对应微服务应用组内各微服务应用实例的调度结果,确定任务执行节点。本专利技术与现有技术相比,其显著优点为:1)无需数据库,对现有业务系统入侵程度较低;2)在各个独立的业务微服中进行任务调度计算,自动完成了故障转移,同时无需单独的调度计算服务节点,降低了对部署环境的硬件要求;3)注册中心都是平行节点,避免了市面上master/slave架构的master节点故障后,重新选举导致的注册服务中断问题。附图说明图1为本专利技术基于微服务的低入侵分布式定时任务调度系统的数据流图。图2为本专利技术分布式调度的流程图。图3为本专利技术业务系统集群分布式调度系统的组网图。图4为本专利技术调度模式逻辑图。图5为本专利技术业务系统应用实例注册关系图。具体实施方式下面结合附图和具体实施例,进一步说明本专利技术方案。本专利技术基于微服务的低入侵分布式定时任务调度系统,涉及业务系统和注册中心集群两个主体,其中业务系统集群包括注册客户端和调度单元;所述注册客户端用于获取微服务应用实例信息,发送给注册中心进行注册;所述调度单元用于根据调度模式对任务对应微服务应用组的各个微服务应用实例进行调度运算,确定任务执行节点;所述注册中心集群包括多个注册中心,用于根据应用实例信息对微服务应用实例进行分组存储,并将注册信息在各注册中心之间同步。注册中心集群基于Eureka服务注册与发现框架开发,在分布式调度中主要是用于业务系统的微服务应用实例的分组注册,以及注册应用服务的在线信息存储与管理,方便业务系统嵌入的调度单元获取应用组信息进行调度计算。注册中心集群的每个注册中心节点功能相同不分主次,注册客户端在向某个注册中心节点发送注册信息时如果发现连接失败,则会自动切换至其它节点,只要有一台注册中心服务还在,就能保证注册服务可用。注册客户端是通过加入业务系统项目中的注册客户端工具类实现的。在客户端工具类中配置注册中心的集群地址后,客户端随应用服务一起运行,自动获取应用服务的实例信息发送给注册中心进行服务注册,见图1。注册中心与注册客户端心跳如出现断链开,注册中心会主动重连,重连超过阀值(阀值可配置)后,认为该应用实例不可用,从注册列表中移除,不会参与后续的调度运算,由于调度计算是在业务系统的应用实例上完成,这里实际实现了故障转移,故障的应用节点是本文档来自技高网...

【技术保护点】
1.基于微服务的低入侵分布式定时任务调度系统,其特征在于,包括业务系统集群和注册中心集群,其中:/n所述业务系统集群包括多个微服务应用实例,每个微服务应用实例设置注册客户端和调度单元,所述注册客户端用于获取微服务应用实例信息,发送给注册中心进行注册;所述调度单元用于根据调度模式对任务对应微服务应用组的各个微服务应用实例进行调度运算,确定任务执行节点;/n所述注册中心集群包括多个注册中心,所述注册中心用于根据应用实例信息对微服务应用实例进行分组存储,并将注册信息在各注册中心之间同步。/n

【技术特征摘要】
1.基于微服务的低入侵分布式定时任务调度系统,其特征在于,包括业务系统集群和注册中心集群,其中:
所述业务系统集群包括多个微服务应用实例,每个微服务应用实例设置注册客户端和调度单元,所述注册客户端用于获取微服务应用实例信息,发送给注册中心进行注册;所述调度单元用于根据调度模式对任务对应微服务应用组的各个微服务应用实例进行调度运算,确定任务执行节点;
所述注册中心集群包括多个注册中心,所述注册中心用于根据应用实例信息对微服务应用实例进行分组存储,并将注册信息在各注册中心之间同步。


2.根据权利要求1所述的基于微服务的低入侵分布式定时任务调度系统,其特征在于,所述注册中心集群的各个注册中心不分主次,注册客户端在向某个注册中心发送注册信息时,如果发现连接失败,则会自动切换至其它节点。


3.根据权利要求1所述的基于微服务的低入侵分布式定时任务调度系统,其特征在于,所述注册中心与注册客户端交互过程中,心跳如出现断链开,注册中心会主动重连,重连超过阀值后,判定应用实例不可用,从注册列表中移除,不会参与后续的调度运算。


4.根据权利要求1所述的基于微服务的低入侵分布式定时任务调度系统,其特征在于,所述注册中心集群设置自我保护机制,在部分注册中心与客户端出现网络故障时触发,包括:
(1)注册中心不再从注册列表中移除因为长时间没收到心跳而应该过期的服务,但会标记服务状态为未知,未知状态的实例信息不参与调度计算;
(2)注册中心仍能接收新服务的注册和查询请求,保证当前注册中心依然可用;
(3)当网络稳定时,新的注册信息会被同步到其他注册中心。


5.根据权利要求1所述的基于微服务的低入侵分布式定时任务调度系统,其特征在于,所述调度单元支持最早注册模式、轮询模式和资源优先模式三种调度计算模式。


6.根据权利要求1所述的基于微服务的低入侵分布式定时任务调度系统,其特征在于,所述注册...

【专利技术属性】
技术研发人员:王刚李男一
申请(专利权)人:苏宁云计算有限公司
类型:发明
国别省市:江苏;32

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

1