点击关注公众号,Java干货及时送达
ElasticJob 是一个分布式调度解决方案,即分布式的定时任务框架,它由 2 个相互独立的子项目 ElasticJob-Lite 和 ElasticJob-Cloud 组成:
ElasticJob-Lite | ElasticJob-Cloud | |
---|---|---|
无中心化 | 是 | 否 |
资源分配 | 不支持 | 支持 |
作业模式 | 常驻 | 常驻 + 瞬时 |
部署依赖 | ZooKeeper | ZooKeeper + Mesos |
功能列表:
相比较传统的 Quartz 定时任务框架,它只能单机部署,而 ElasticJob 要更加强大,它支持分布式弹性调度、资源管控、作业治理、在线可视化管控操作等功能。
ElasticJob 最初是由当当网在 2014 年底开源的一个分布式定时任务项目,在 2017 ~ 2020 年中断了维护好几年,在 2020 年又重启了维护,并成为了 Apache ShardingSphere 的子项目。
域名已经切换到了 Apache shardingsphere 旗下:
https://shardingsphere.apache.org/elasticjob/
代码托管地址也已经变更到了 Apache 旗下:
https://github.com/apache/shardingsphere-elasticjob
最近栈长注意到 ElasticJob 3.0.0 发布了:
距离上一个 2.1.5 正式版本已经是整整 4 年前了。。。
ElasticJob 进入 Apache 就搞了一个大版本,在经过 alpha、beta、RC1 3 个版本的打磨之后,ElasticJob 3.0.0 版本终于正式发布了。这也是 ElasticJob 项目自 2020 年 5 月 28 日重启,并成为 Apache ShardingSphere 子项目以来的第一个正式版本。
来看看更新了啥:
1、错误处理邮件通知支持 SMTP SSL 配置;
2、修复了 2 个 bug:
1)failover 在分布式环境不生效的问题;
2)作业关闭后,ReconcileService 仍在运行的问题;
3、在 ElasticJob Spring Boot Starter 中把 spring-boot-starter-jdbc 变为可选依赖;
现在是 Spring Boot 的天下了,各个技术框架也都提供了对 Spring Boot Starter 的支持,让 Spring Boot 分分钟集成,太香了!Spring Boot 基础不介绍了,基础教程和示例源码栈长之前写了一堆,不懂的可以推荐学习下:
https://github.com/javastacks/spring-boot-best-practice
认真的吗??一个 3.0.0 大版本,就更新了这点功能,有点惊讶。。
栈长查了下资料,并没有看到有 3.0.0 vs 2.1.5 方面更多的比较,ElasticJob 3.0.0 除了上述的更新内容外,还对内核进行了大量的重构和解耦,并扩充了一系列的生态对接,例如开箱即用的企业微信或钉钉作业出错通知等。
ElasticJob 3.0.0 虽然没太大的惊喜,但却迈出了重大的一步,栈长虽然好久没关注 ElasticJob 了,但不建议现在就上 3.0.0,毕竟是重构的新版本,成熟和稳定性有待验证。
分布式任务框架其实在国内也有其他的不错的开源竟品,比如:XXL-JOB,但 ElasticJob 也有它的一席之地的,很多大公司都在用,所以,不用怕,大胆用,毕竟之前的 ElasticJob 2.x 就能独当一面。
已知采用的公司可以看这里:
https://shardingsphere.apache.org/elasticjob/current/cn/powered-by/
栈长之前所在的公司也用到了 ElasticJob,并且基于它还做了一些功能定制,个人感觉还可以的,分片功能和失效自动转移功能很强大,推荐看我之前写的文章:
分布式作业 Elastic-Job 快速上手指南,从理论到实战一文搞定!
另外,ElasticJob 能成为 Apache 的子项目,也说明 ElasticJob 有它的价值!对于 ElasticJob 3.0.0 的发布,以及后续的持续发力,分布式定时任务框架的明天可能也会大变天。。
好了,今天的分享就到这了,后面栈长还会陆续解读更多的 Java 主流技术,关注公众号Java技术栈第一时间推送。
最后,你们公司有用 ElasticJob 框架的么?欢迎留言分享使用心得~!
觉得我的文章对你用收获的话,动动小手,给个在看、转发,原创不易,栈长需要你的鼓励。
参考: https://shardingsphere.apache.org/elasticjob https://github.com/apache/shardingsphere-elasticjob/releases/tag/3.0.0 https://my.oschina.net/u/5137513/blog/5123156
版权申明:本文系公众号 "Java技术栈" 原创,原创实属不易,转载、引用本文内容请注明出处,禁止抄袭、洗稿,请自重,尊重大家的劳动成果和知识产权,抄袭必究。
关注Java技术栈看更多干货
获取 Spring Boot 实战笔记!