最新发布《数智时代的AI人才粮仓模型解读白皮书(2024版)》,立即领取! 了解详情
写点什么

分布式调度中间件 Elastic-Job 2.1.0 发布:Cloud Native 里程碑版本

  • 2017-04-09
  • 本文字数:2191 字

    阅读完需:约 7 分钟

Elastic-Job 是什么?

Elastic-Job 是一个开源的分布式调度中间件,由两个相互独立的子项目 Elastic-Job-Lite 和 Elastic-Job-Cloud 组成。

Elastic-Job-Lite 为轻量级无中心化解决方案,使用 jar 包提供分布式任务的调度和治理。 Elastic-Job-Cloud 是一个 Mesos Framework,依托于 Mesos 额外提供资源治理、应用分发以及进程隔离等服务。

项目已开源接近 2 年,目前为止已更新发布 16 次。Elastic-Job 已在分布式作业领域占有一席之地,明确采纳的公司已超过 50 家,未收录的采纳公司不计其数,更有多个开源产品衍生自 Elastic-Job。

项目的开源地址:

https://github.com/dangdangdotcom/elastic-job

Elastic-Job-Lite 和 Elastic-Job-Cloud 的定位是什么?

Elastic-Job-Lite 定位为纯粹的作业中间件,仅关注分布式调度、协调以及分片等核心功能,将作业部署、资源分配等功能交于 Mesos 或 Kubernetes 处理;而 Elastic-Job-Cloud 提供一体化私有云服务,将分布式调度、作业部署、资源分配、监控、日志处理等提供完善的解决方案。

从功能上看 Elastic-Job-Cloud 更加完善,但依托于 Mesos,使用复杂度较高,不易整合进公司现有系统,因而更加轻量级的 Elastic-Job-Lite 在实际使用中更受青睐。

之前版本的 Elastic-Job-Lite 有什么缺失?

主要缺失就是对 Cloud Native 的支持。原来的 Elastic-Job-Lite 是面向静态场景的,简单说就是每台作业服务器只能部署一个作业名称相同的作业实例,而当这个作业实例下线时,该作业服务器则显示为下线状态。这对于使用物理服务器的场景来说比较适合,而对于使用 Docker 的场景,则不太友好,原因是:

  1. 每次作业上线服务器 IP 可能产生变化,旧的服务器 IP 不会再使用,从而产生垃圾数据。
  2. Docker 的治理系统可以在一台物理服务器上启动多实例,而仅支持单服务器单实例的 Elastic-Job 使用起来诸多不便,需要 Docker 的治理系统额外配置。

Elastic-Job 2.1.0 版本是如何做到 Cloud Native 的?

新版本支持单服务器跑任意多的相同作业实例,原作业实例标识由 IP 地址替换为作业启动瞬时产生的 UUID。在新的 Cloud Native 架构下,作业物理服务器概念大幅弱化。为了向前兼容,作业物理服务器仅包含控制服务器是否可以禁用这一功能。为了更加纯粹的实现作业核心,作业物理服务器统计和操作功能未来可能删除,可下放至容器治理部署系统。

使用新增加的运行实例概念全面替换原服务器概念,Elastic-Job-Lite 与容器治理系统的对接由原来的服务器维度转变为运行实例维度,每个运行实例都是动态的,会随着作业下线而消失。

习惯根据服务器静态分配作业的使用者也不用太过担心新版本带来的变化,服务器信息以另外一个维度可选的存在于作业管理信息中,使用者仍然可以继续使用服务器静态部署的方式。

通过这次修改,Elastic-Job-Lite 已经可以非常容易的对接 Mesos + Marathon 以及 Kubernetes,相信使用者可以非常轻松的搭建一个深度定制版的作业私有云。

Elastic-Job 2.1.0 版本还有哪些关键更新?

Elastic-Job 2.1.0 版本是仅针对 Elastic-Job-Lite 进行全面提升。它主要包含以下 4 方面的提升:

  1. 单服务器可运行任意多的相同作业实例。Cloud Native,这里不再细说。
  2. 自修复能力使稳定性进一步提升。之前的 Elastic-Job 经过一年多的洗礼,稳定性已然不错,但是分布式场景由于环境复杂,很难完全通过正向的方式保证每个节点间的状态完全同步。而 Elastic-Job 原来的版本在网络不稳定的情况下,可能发生主节点选举卡死,或某个分片不运行的情况,可以通过重启应用修复。新版本的 Elastic-Job-Lite 使用异步线程,定期(可配置时间间隔)检测集群中不正确的状态,以反向检查的方式查找并自动修复分布式的不一致,为分布式稳定性的完善增加了最后一块拼图。
  3. 作业操作梳理。新版本将操作分为作业、实例、分片以及服务器 4 个维度,去除了容易混淆的暂停操作,对禁用功能进一步的增强,可以从各个维度控制整体作业或独立分片。
  4. 控制台界面提升。完全重写了控制台界面并且增加了事件追踪界面展示。新界面提供更加清新的用户体验,甚至包括主题皮肤切换,欢迎大家亲自体会。

Elastic-Job 2.1.0 版本与旧版本兼容么?

新里程碑版本做了如此大的修改和提升,那么从旧版本升级至新版本有哪些地方需要修改?相信很多老用户有这样的疑问。答案是:不需要做任何改动。

Elastic-Job 2.1.0 虽然对数据的存储结构进行了调整,但完全兼容原有数据结构,并且 API 和配置并未改变,使用者可以平滑升级。

Elastic-Job 下一步要做什么?

当前的 Elastic-Job 已支持事件驱动,但并不完善。因此 Elastic-Job 下个功能将针对事件驱动进行提升,将其分布式“定时任务”中间件的定位彻底改变为分布式“任务”中间件。

另外还有很多功能需要继续完善,如作业依赖的支持等。

对于新手来说使用 Elastic-Job 很难么?

Elastic-Job-Cloud 对于新手来说使用起来并不太容易,需要对 Mesos 技术栈有一定了解。

Elastic-Job-Lite 则非常简单,只需在 pom.xml 中引入 Elastic-Job 的 maven 坐标,并且参照在 github 上的 example 编写几行代码即可,唯一的外部依赖是 Zookeeper。

最后,请允许我再重复一次,项目的开源地址: https://github.com/dangdangdotcom/elastic-job

欢迎使用、吐槽和提出建议。

其他相关资料

当当开源 elastic-job,分布式作业调度框架

【CNUTCon2016】基于 Mesos 的当当作业云 Elastic-Job-Cloud

【QCon 北京 2016】当当架构平台化之道

2017-04-09 18:076059
用户头像

发布了 25 篇内容, 共 25.4 次阅读, 收获喜欢 118 次。

关注

评论

发布
暂无评论
发现更多内容

这88道阿里高级岗面试题,刷掉了80%以上的Java程序员

钟奕礼

编程 程序员 Java 面试 Java、

数字化转型如何更方便?华为云大数据BI解决方案来了!

科技之光

「复享光学」用深度光谱技术推动光与电的变革

硬科技星球

备受企业青睐的华为云CDN优势到底在哪?

路过的憨憨

我坦白→低代码功能我有,SQL练习题、数据可视化、数据填充助你高效

非喵鱼

sql 低代码 可视化 eCharts 数据库·

云原生、20.3k Star......时序数据库 TDengine 的 2022 年精彩纷呈

TDengine

数据库 tdengine 开源 时序数据库

AI for Science的上半场:人工智能如何重新定义科学研究新范式?

脑极体

公司刚来的阿里p8,看完我构建的springboot框架,甩给我一份文档

钟奕礼

程序员 Java 面试 Java、 java 编程

蚂蚁金服Java研发岗二面:说说HashMap 中的容量与扩容实现

钟奕礼

程序员 Java 面试 Java、 java 编程

2022年最全大厂面试真题解析:java集合+spring+并发编程+MyBatis

钟奕礼

程序员 Java 面试 Java、 java 编程

Dubbo 3 之 Triple 流控反压原理解析

Apache Dubbo

Java 开源 微服务 gRPC dubbo

暴雪、迪士尼大佬用什么画画?RayLink远控软件助力解锁远程创作

RayLink远程工具

远程控制软件 远程办公软件 远控软件 RayLink

启科量子部署工具 Runtime 正式开源

启科量子开发者官方号

部署 量子

2022,我们追逐群星,也在追逐AIGC的无尽可能

脑极体

华为云CDN,助力安全企业下载服务,更好提升用户体验

路过的憨憨

对标阿里P7:高并发+Nginx+微服务+消息中间件+Netty+Redis+MySQL

程序知音

Java 数据库 JVM 高并发 后端技术

开源全球公司贡献 49 名,涛思数据荣登 2022 中国开发者影响力年度榜单

TDengine

tdengine 时序数据库

金融投资不靠谱?投资者哭诉投资建信信托亏损

EOSdreamer111

建木v2.6.2发布

Jianmu

开源 DevOps 持续集成 低代码 CI/CD

Pg数据库日常维护操作指南

i查拉图斯特拉如是说

数据库 postgresql PgSQL

刷完200+大厂Java真题手册,成功拿到阿里,京东,美团的offer

钟奕礼

程序员 Java 面试 Java、 java 编程

华为云CDN提升网站响应速度,让下载快人一步

路过的憨憨

既要速度与激情,也要稳定和安全,华为云CDN让你速度和安全兼得

路过的憨憨

10 万字节Spring Boot +redis详细面试笔记(带完整目录)免费分享

钟奕礼

程序员 Java 面试 Java、 java 编程

如何快速建立商业智能系统?华为云告诉您!

科技之光

墨菲安全软件供应链安全产品v3.0正式公测之产品特性简介及用户升级说明

墨菲安全

软件成分分析 开源安全 墨菲安全 软件供应链安全

华为云CDN加速服务,引领企业数字化发展潮流!

路过的憨憨

Flink Shuffle 3.0: Vision, Roadmap and Progress

Apache Flink

大数据 flink 实时计算

恭喜 KubeVela 获得中国开源云联盟 2022 “优秀开源项目”

阿里巴巴云原生

阿里云 开源 云原生 KubeVela

【12.23-12.30】写作社区优秀技术博文回顾

InfoQ写作社区官方

热门活动

接口自动化测试不想写代码?这款工具强烈推荐

叶小柒

测试 Postman

分布式调度中间件Elastic-Job 2.1.0发布:Cloud Native里程碑版本_DevOps & 平台工程_张亮_InfoQ精选文章