传统任务调度使用Crontab,需要ssh登陆服务器操作,单节点宕机后终止调度,排查问题不方便,项目使用可视化的页面配置方式,结合分布式理论实现高可用与易于扩展的高可用任务调度系统。
● 项目使用Master-Worker,一主多从的分布式架构,实现任务的高可用与高性能
● 基于Etcd实现任务在集群中分发。
● 事件广播,任务强杀功能的实现,基于etcd watcher实现
● 分布式锁 ,任务的并发调度,防止任务被多个worker执行
● 服务注册与发现,通过页面可以监控到健康的worker列表
● 并发设计,使用了Golang自带的高性能Goroutine实现任务到期时并发执行
● 异步日志,基于Goroutine任务日志以异高可用步方式传输到mongodb
● Nginx负载均衡实现了master的高可用
● 前端使用Bootstrap实现简易页面