Dkron分布式定时任务系统分析(v2)
Dkron是一个分布式,启动迅速,容错的定时任务系统,支持cron表达式。
Dkron特点:
- 易用:易操作和漂亮的UI
- 可靠:支持容错
- 高可扩展性:能够处理大量的计划作业和数千个节点
Dkron是用Go编写的,它利用Raft协议和Serf的强大功能提供容错性、可靠性和可扩展性,同时保持简单易安装。
Dkron-v2整体架构图:
Dkron每个节点都是由一个web服务、grpc服务、raft服务、serf服务、badger数据库构成。
web负责转发来自前端job的元信息给grpc服务,一般的grpc操作都在leader节点进行。job的调度和修改保存都要通过leader,只有获取job的信息不需要到leader节点,因为每个节点的数据是一致的。有人会说这样的话那是不是leader的压力会不会太大,不必担心,由于对于job的增删改其实请求是很小的,而且job的执行也不是在leader,所以大可不必担心。
Serf用于服务发现和节点故障提醒,提供节点成员信息,执行job任务。
嵌入式数据库badger负责在每个节点存储数据,通过Raft协议保证数据一致性。
Dkron的每个节点在运行的服务上都是相同的ÿ