在项目中使用定时任务去做数据分析、数据补偿、数据监测的场景很多,但是依赖公司的定时任务调度服务存在排队、拉取服务失败、启动容器超时等问题,定时任务成功率比较低,调研了下目前开源的定时任务调度框架如下:
一、分布式定时任务调度框架需要解决的问题
1、如何调度
问题:i、某个调度实例的创建、完成、异常中断对其他调度实例无影响
ii、避免所有的调度任务都在一个节点上执行
方案:生产者消费者模式,执行节点消费调度任务
2、如何持久化
问题:i、持久化的定时任务能被所有执行节点获取
ii、调度任务被实时的执行
方案:分布式数据库,且key是有序的:hbase;队列
3、如何保证任务状态一致性
问题:任务A执行一半失败,已删除数据,任务A重新执行
方案:分布式事务 --> 业务方保证数据的幂等
网友评论