前往小程序,Get更优阅读体验!
立即前往
首页
学习
活动
专区
工具
TVP
发布
社区首页 >专栏 >[423]定时任务(saturn)

[423]定时任务(saturn)

作者头像
周小董
发布2022-04-13 14:07:12
1.5K0
发布2022-04-13 14:07:12
举报
文章被收录于专栏:python前行者python前行者

项目地址:https://github.com/vipshop/Saturn 参考文档:https://vipshop.github.io/Saturn/#/zh-cn/3.0/ https://vipshop.github.io/Saturn/#/zh-cn/2.x/ 版本下载:https://github.com/vipshop/Saturn/releases

本文档针对版本3.x版本。

Saturn

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

简介

Saturn (任务调度系统)是唯品会开源的分布式作业调度平台,取代传统的Linux Cron/Spring Batch Job的方式,做到统一配置,统一监控,任务高可用以及分片并发处理。Saturn基于当当Elastic Job代码基础上自主研发的任务调度系统。

重要特性

  • 支持多种语言作业,语言无关(Java/Go/C++/PHP/Python/Ruby/shell)
  • 支持秒级调度
  • 支持作业分片并行执行
  • 支持依赖作业串行执行
  • 支持作业高可用和智能负载均衡
  • 支持异常检测和自动失败转移
  • 支持异地容灾
  • 支持多个集群部署
  • 支持跨机房区域部署
  • 支持弹性动态扩容
  • 支持优先级和权重设置
  • 支持docker容器,容器化友好
  • 支持cron时间表达式
  • 支持多个时间段暂停执行控制
  • 支持超时告警和超时强杀控制
  • 支持灰度发布
  • 支持异常、超时和无法高可用作业监控告警和简易的故障排除
  • 支持失败率最高、最活跃和负荷最重的各域各节点TOP10的作业统计
  • 经受住唯品会生产800多个节点,每日10亿级别的调度考验

快速开始

Saturn包括两大部分,Saturn ConsoleSaturn Executor

Saturn Console是一个GUI,用于作业/Executor管理,统计报表展现,系统配置等功能。它同时也是整个调度系统的大脑:将作业任务分配到各Executor。

Saturn Executor是执行任务的Worker:按照作业配置的要求去执行部署于Executor所在容器或物理机当中的作业脚本和代码。

为了能让用户对Saturn有一个感性认识,我们提供了两种快速启动Console和Executor的方法。

至于生产环境的部署,请参见后面的部署指南。

1 一键启动

首先,请确保本机安装了以下软件:

  • JDK 7 or JDK 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

代码语言:javascript
复制
$ git clone https://github.com/vipshop/Saturn
$ git checkout develop
$ cd quickstart
$ chmod +x quickstart.sh
$ ./quickstart.sh

quickstart脚本将做如下事情:

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

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

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

home_page
home_page

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

demo_job
demo_job

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

2 Docker启动

代码语言:javascript
复制
$ git clone https://github.com/vipshop/Saturn
$ git checkout develop
$ cd saturn-docker
$ chmod +x quickstart-docker.sh
$ ./quickstart-docker.sh

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

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

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

本文参与 腾讯云自媒体分享计划,分享自作者个人站点/博客。
原始发表:2018-11-04 ,如有侵权请联系 cloudcommunity@tencent.com 删除

本文分享自 作者个人站点/博客 前往查看

如有侵权,请联系 cloudcommunity@tencent.com 删除。

本文参与 腾讯云自媒体分享计划  ,欢迎热爱写作的你一起参与!

评论
登录后参与评论
0 条评论
热度
最新
推荐阅读
目录
  • Saturn
  • 重要特性
  • 快速开始
    • 1 一键启动
      • 2 Docker启动
      相关产品与服务
      容器服务
      腾讯云容器服务(Tencent Kubernetes Engine, TKE)基于原生 kubernetes 提供以容器为核心的、高度可扩展的高性能容器管理服务,覆盖 Serverless、边缘计算、分布式云等多种业务部署场景,业内首创单个集群兼容多种计算节点的容器资源管理模式。同时产品作为云原生 Finops 领先布道者,主导开源项目Crane,全面助力客户实现资源优化、成本控制。
      领券
      问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档