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

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(转载)

优秀的个人博客,低调大师

微信关注我们

原文链接:https://yq.aliyun.com/articles/163752

转载内容版权归作者及来源网站所有!

低调大师中文资讯倾力打造互联网数据资讯、行业资源、电子商务、移动互联网、网络营销平台。持续更新报道IT业界、互联网、市场资讯、驱动更新,是最及时权威的产业资讯及硬件资讯报道平台。

相关文章

发表评论

资源下载

更多资源
Mario,低调大师唯一一个Java游戏作品

Mario,低调大师唯一一个Java游戏作品

马里奥是站在游戏界顶峰的超人气多面角色。马里奥靠吃蘑菇成长,特征是大鼻子、头戴帽子、身穿背带裤,还留着胡子。与他的双胞胎兄弟路易基一起,长年担任任天堂的招牌角色。

Oracle Database,又名Oracle RDBMS

Oracle Database,又名Oracle RDBMS

Oracle Database,又名Oracle RDBMS,或简称Oracle。是甲骨文公司的一款关系数据库管理系统。它是在数据库领域一直处于领先地位的产品。可以说Oracle数据库系统是目前世界上流行的关系数据库管理系统,系统可移植性好、使用方便、功能强,适用于各类大、中、小、微机环境。它是一种高效率、可靠性好的、适应高吞吐量的数据库方案。

Java Development Kit(Java开发工具)

Java Development Kit(Java开发工具)

JDK是 Java 语言的软件开发工具包,主要用于移动设备、嵌入式设备上的java应用程序。JDK是整个java开发的核心,它包含了JAVA的运行环境(JVM+Java系统类库)和JAVA工具。

Sublime Text 一个代码编辑器

Sublime Text 一个代码编辑器

Sublime Text具有漂亮的用户界面和强大的功能,例如代码缩略图,Python的插件,代码段等。还可自定义键绑定,菜单和工具栏。Sublime Text 的主要功能包括:拼写检查,书签,完整的 Python API , Goto 功能,即时项目切换,多选择,多窗口等等。Sublime Text 是一个跨平台的编辑器,同时支持Windows、Linux、Mac OS X等操作系统。