618促销期间,当订单量较大时,如果定时任务出现异常,就会导致订单积压,进而导致订单履行时效性下降,严重影响商家履约效率,造成订单取消、客户投诉等
为了保证整体稳定,实现快速实施、稳定运行,防止在修改成本比较小的情况下偶尔出现这样的异常情况,我们实现了轻量级的定时任务无缝降级。
一
我们使用的功能
支持集群和分布;
灵活的任务分片;
动态服务扩展和资源循环利用;
支持单个任务线程数的设置和实时调整。
二
我们想要实现什么
为了保证单个系统的稳定性,我们对自己系统的任务进行分散和独立调度。
为了避免ZK的不稳定,我们通过redis实现注册中心和动态分片功能。
避免使用计时器并使用线程池来控制线程。
为了降低改造成本,并且不需要业务系统进行代码改动,我们自动实现内部方法,并保持原有的输入参数。
为了支持更多的任务,可以动态调整线程数量,以增加系统的处理能力。
三
解决方案实施
四
结果
通过xml配置,引入jar包的方式,实现快速访问。
主要功能基本实现,基本方法一致,无切换成本。
通过ducc配置和应急预案,支持手动或自动降级,无缝连接,随时随地可操作,为大促保驾护航。
在线运行,动态分片稳定,心跳检查及时,可随时降级,帮助订单系统避免多次zk波动的影响。
通过轻量级降级和应急预案触发,保障活动稳定运行!!!!
五
后续计划
使用它作为定时任务的触发器(也可以一起使用),支持更多形式的定时配置,使其成为完美的替代品。
提供可视化界面监控任务运行状态。
结尾
回顾过去的问题