/RICE

🔥 Distributed Cluster Scheduler 分布式调度中间件(对标阿里云SchedulerX2.0)

Primary LanguageJavaMIT LicenseMIT

RICE

Distributed Cluster Scheduler

Build Status codecov maven license Average time to resolve an issue Percentage of issues still open Tweet Gitter

rice_logo

介绍

RICE 是一个分布式集群调度中间件,目前面向业务而不是数据的分布式调度框架有阿里云的SchedulerX2.0,但是并不是开源的。也有社区大牛基于SchedulerX2.0研发了PowerJob,但是power-job作者在集群容错方面并不是做的很友好,在多个调度server下,没有办法做到server均衡负载任务,也就是说任务在多个server上均衡分布,导致某一个调度服务器负载很高。

RICE可以实现动态任务分配,当一个server调度器挂机之后,原本在宕机服务的任务能够在集群中重新分配,由其他server调度。另外像power-job或者SchedulerX2.0引入和Spring和Akka等第三方jar。RICE做到简而美,对架构做了重新设计,尽可能的减少对第三方库的依赖。自研注册中心,日志,网络通讯模块,序列化,网络协议等。

另外作者把这个项目叫RICE,也是因为当时有这个想法的时候,正好是袁隆平爷爷的变故,RICE的中文名是米饭,水稻的意思,也是为了纪念这位共和国伟人。

架构

architecture


RICE官网


RICE在线demo


RICE开发文档


开发进度

1.0.0版本计划

处理器 控制器 调度器 控制台 其他
✔任务发布
✔ 任务上线通知
┅ 与spring的集成(类似dubbo)
✔ Jraft选举
✔ 任务发现通知
✔ 调度器状态变更通知
✔ 任务重分配通知
✔处理器状态维护
✔单机任务
✔广播任务
✔Map任务
✔MapReduce任务
✔工作流任务
┅UI
✔ 归档
✔ 编译打包
┅ 执行shell脚本