分布式、高可用的延迟调度系统、可以配合消息队列实现延迟任务队列
delay-schedule客户端使用的SDK,即调用方引用该SDK。
delay-schedule服务端实现的核心逻辑的类都在改项目中
基于delay-schedule-server-core适配springboot,对delay-schedule-server-core中得类做装配注入spring容器中
启动项目,根据需要引入需要的starter,如rabbitmq-spring-boot-starter来实现相应的功能
适配rabbitmq的延时任务队列逻辑
- client-proxy对外提供http接口支持传入延时消息功能
- client-proxy通过slot-sharding的方式把延时消息发送到相应的schedule-server实例中
- schedule-server基于时间轮实现内存中的延时调度,并把延时消息持久化到db中
- schedule-server通过zookeeper实现集群的高可用,包括leader选举、rebalance
- schedule-server对外提供http接口
- 接入RabbitMQ实现延时任务队列
- schedule-server接入metrics,可以实时展示schedule-server内存运行时状态
- 添加dashboard 前端项目,可以直观查看运行时状态,实现一些基本功能
- 接入监控、告警系统
- 支持定时、周期执行任务
- 支持设定任务的重试策略、重试多次失败之后告警
- 添加压测项目
- kubernetes部署
- 完善dashboard项目,支持更多指标、功能
- 支持不依赖zookeeper、只依赖mysql
- 考虑支持异步接口、支持批量接口
- 考虑schedule-server之间支持主从模式,可以直接传输数据
- 如果mysql性能不够、考虑使用RocksDB。可能与4配合使用