您的位置  > 互联网

分布式开源调度框架依赖ZK,实现轻量级定时任务来进行无缝隙降级

618促销期间,当订单量较大时,如果定时任务出现异常,就会导致订单积压,进而导致订单履行时效性下降,严重影响商家履约效率,造成订单取消、客户投诉等

为了保证整体稳定,实现快速实施、稳定运行,防止在修改成本比较小的情况下偶尔出现这样的异常情况,我们实现了轻量级的定时任务无缝降级。

我们使用的功能

支持集群和分布;

灵活的任务分片;‍

动态服务扩展和资源循环利用;

支持单个任务线程数的设置和实时调整。

我们想要实现什么

为了保证单个系统的稳定性,我们对自己系统的任务进行分散和独立调度。

为了避免ZK的不稳定,我们通过redis实现注册中心和动态分片功能。

避免使用计时器并使用线程池来控制线程。

为了降低改造成本,并且不需要业务系统进行代码改动,我们自动实现内部方法,并保持原有的输入参数。

为了支持更多的任务,可以动态调整线程数量,以增加系统的处理能力。

解决方案实施

结果

通过xml配置,引入jar包的方式,实现快速访问。

主要功能基本实现,基本方法一致,无切换成本。

通过ducc配置和应急预案,支持手动或自动降级,无缝连接,随时随地可操作,为大促保驾护航。

在线运行,动态分片稳定,心跳检查及时,可随时降级,帮助订单系统避免多次zk波动的影响。

通过轻量级降级和应急预案触发,保障活动稳定运行!!!!

后续计划

使用它作为定时任务的触发器(也可以一起使用),支持更多形式的定时配置,使其成为完美的替代品。

提供可视化界面监控任务运行状态。

结尾

回顾过去的问题