唯品会开源分布式作业调度平台Saturn

前言

Saturn英文意思是:土星,太阳系中的第二大行星。比地球高一个层级,地球是八大行星之一。而今天我们介绍的Saturn,是IT行业的一个分布式作业调度平台。可以看到Saturn的管理界面的象征性图标就是如下一个土星标志​:

唯品会开源分布式作业调度平台Saturn_第1张图片 土星

背景

普通的SpringBoot/SpringCloud微服务和Dubbo RPC分布式架构技术,都有着其各自的优缺点。其中最明显的就是模块间的依赖性:

  1. 比如SpringCloud必须依赖网关Zuul和ConfigCenter配置中心。
  2. 前一个业务模块必须启动并正常运行,后面依赖该业务模块的才能正常启动。
  3. Dubbo必须要配置Service且正常启动并运行。
  4. 后面调用前面的Dubbo Service作业才能正常启动。

一、简介

Saturn (任务调度系统)是唯品会开源的一个分布式任务调度平台,取代传统的Linux Cron/Spring Batch Job的方式,做到全域统一配置,统一监控,任务高可用以及分片并发处理。

Saturn是在当当开源的Elastic Job基础上,结合各方需求和我们的实践见解改良而成。

GitHub上Saturn官网活跃着很多Saturn用户和爱好者,业界也有很多公司以Saturn作为公司的核心架构

https://github.com/vipshop/Saturn

 

二、特性

  • 基于时间的作业调度,作业实现不受开发语言所限
  • 简单的作业实现和基于web的作业管理
  • 并行作业分片支持
  • 秒级调度支持
  • 智能的基于负载作业分配算法
  • 异常检测和自动failover
  • 统计数据可视化
  • 全方位监控和简易的trouble shooting
  • 支持多活集群部署
  • 容器友好
  • 经受住生产每日几十亿级别的调度考验
  • 更多..

三、快速开始

  1. Saturn包括两大部分,Saturn Console和Saturn Executor。
  2. Saturn Console是一个GUI,用于作业/Executor管理,统计报表展现,系统配置等功能。它同时也是整个调度系统的大脑:将作业任务分配到各Executor。
  3. Saturn Executor是执行任务的Worker:按照作业配置的要求去执行部署于Executor所在容器或物理机当中的作业脚本和代码。
  4. 提供两种快速启动Console和Executor的方法。

 

一键启动

安装必备:

  • JDK 1.8
  • Maven 3.0.4+
  • node.js 8.7.0+
  • npm 5.4.2+
  • docker (版本不限)

然后,git clone本仓库到本地,checkout对应版本分支,进入quickstart目录。如果是Windows系统,请运行quickstart.bat,如果是Linux/Unix/MacOS系统,请运行quickstart.sh。

$ git clone https://github.com/vipshop/Saturn$ git checkout develop$ cd saturn-docker$ chmod +x quickstart.sh$ ./quickstart.sh

quickstart脚本将做如下事情:

  • 启动内嵌的ZooKeeper
  • 启动内嵌的Saturn-Console
  • 启动内嵌的Saturn-Executor(包含了一个Java作业的实现)
  • 在Saturn-Console添加该Java作业

启动完成后,您可以访问Saturn-Console:http://localhost:9088

如果你见到如下界面,则恭喜你,你的console已经启动。

唯品会开源分布式作业调度平台Saturn_第2张图片

 

在首页的search bar点击会出现一个叫做'mydomain'的namespace。点击进去会见到一个名为'demoJavaJob'的作业,该作业有5个分片,每隔5秒调度一次。

唯品会开源分布式作业调度平台Saturn_第3张图片

一个叫做'executor-1'的executor执行器调度该作业。

Docker启动

唯品会开源分布式作业调度平台Saturn_第4张图片

quickstart-docker.sh脚本将做如下事情:

  • 构建基于OpenJDK7的基础镜像
  • 构建基于OpenJDK7的Saturn-Console镜像
  • 构建基于OpenJDK7的Saturn-Executor镜像
  • 启动一个ZooKeeper集群的容器
  • 启动一个Saturn-Console容器
  • 启动两个Saturn-Executor容器
  • 添加一个Java作业和一个Shell作业

启动成功后,您可以访问Saturn-Console:http://localhost:9088

 

关注公众号: 程序大视界

觉得对你有帮助,关注博客和公众号。不定期分享最新前沿技术框架和bat大厂常用技术等,加群不定期分享行业内大牛直播讲课以及获得视频课件资料等。

你可能感兴趣的:(Saturn,java,作业调度,分布式任务调度平台,VIPSHOP)