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

本文涉及的产品
Serverless 应用引擎免费试用套餐包,4320000 CU,有效期3个月
服务治理 MSE Sentinel/OpenSergo,Agent数量 不受限
性能测试 PTS,5000VUM额度
简介:

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的场景,则不太友好,原因是:

每次作业上线服务器IP可能产生变化,旧的服务器IP不会再使用,从而产生垃圾数据。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方面的提升:

单服务器可运行任意多的相同作业实例。Cloud Native,这里不再细说。自修复能力使稳定性进一步提升。之前的Elastic-Job经过一年多的洗礼,稳定性已然不错,但是分布式场景由于环境复杂,很难完全通过正向的方式保证每个节点间的状态完全同步。而Elastic-Job原来的版本在网络不稳定的情况下,可能发生主节点选举卡死,或某个分片不运行的情况,可以通过重启应用修复。新版本的Elastic-Job-Lite使用异步线程,定期(可配置时间间隔)检测集群中不正确的状态,以反向检查的方式查找并自动修复分布式的不一致,为分布式稳定性的完善增加了最后一块拼图。作业操作梳理。新版本将操作分为作业、实例、分片以及服务器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

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

本文转自d1net(转载)

目录
相关文章
|
7月前
|
Java 调度 Maven
Elastic-job分布式调度系统
Elastic-job分布式调度系统
|
4月前
|
资源调度 Java 调度
Spring Cloud Alibaba 集成分布式定时任务调度功能
定时任务在企业应用中至关重要,常用于异步数据处理、自动化运维等场景。在单体应用中,利用Java的`java.util.Timer`或Spring的`@Scheduled`即可轻松实现。然而,进入微服务架构后,任务可能因多节点并发执行而重复。Spring Cloud Alibaba为此发布了Scheduling模块,提供轻量级、高可用的分布式定时任务解决方案,支持防重复执行、分片运行等功能,并可通过`spring-cloud-starter-alibaba-schedulerx`快速集成。用户可选择基于阿里云SchedulerX托管服务或采用本地开源方案(如ShedLock)
134 1
|
4月前
|
存储 缓存 监控
分布式链路监控系统问题之kywalking在后期维护过程中可能会遇到中间件版本升级的问题如何解决
分布式链路监控系统问题之kywalking在后期维护过程中可能会遇到中间件版本升级的问题如何解决
|
1月前
|
存储 NoSQL Java
Java调度任务如何使用分布式锁保证相同任务在一个周期里只执行一次?
【10月更文挑战第29天】Java调度任务如何使用分布式锁保证相同任务在一个周期里只执行一次?
75 1
|
7月前
|
算法 调度
电动汽车集群并网的分布式鲁棒优化调度matlab
电动汽车集群并网的分布式鲁棒优化调度matlab
|
5月前
|
资源调度 Java 调度
Spring Cloud Alibaba 集成分布式定时任务调度功能
Spring Cloud Alibaba 发布了 Scheduling 任务调度模块 [#3732]提供了一套开源、轻量级、高可用的定时任务解决方案,帮助您快速开发微服务体系下的分布式定时任务。
15015 34
|
4月前
|
运维 安全 Cloud Native
核心系统转型问题之分布式数据库和数据访问中间件协作如何解决
核心系统转型问题之分布式数据库和数据访问中间件协作如何解决
|
4月前
|
机器学习/深度学习 资源调度 PyTorch
面向大规模分布式训练的资源调度与优化策略
【8月更文第15天】随着深度学习模型的复杂度不断提高,对计算资源的需求也日益增长。为了加速训练过程并降低运行成本,高效的资源调度和优化策略变得至关重要。本文将探讨在大规模分布式训练场景下如何有效地进行资源调度,并通过具体的代码示例来展示这些策略的实际应用。
440 1
|
4月前
|
Dubbo Java 调度
揭秘!Spring Cloud Alibaba的超级力量——如何轻松驾驭分布式定时任务调度?
【8月更文挑战第20天】在现代微服务架构中,Spring Cloud Alibaba通过集成分布式定时任务调度功能解决了一致性和可靠性挑战。它利用TimerX实现任务的分布式编排与调度,并通过`@SchedulerLock`确保任务不被重复执行。示例代码展示了如何配置定时任务及其分布式锁,以实现每5秒仅由一个节点执行任务,适合构建高可用的微服务系统。
72 0
|
5月前
|
消息中间件 缓存 架构师
对抗软件复杂度问题之降低代码的复杂度,如何解决
对抗软件复杂度问题之降低代码的复杂度,如何解决

热门文章

最新文章