Saturn (任务调度系统)是唯品会开源的一个分布式任务调度平台,取代传统的Linux Cron/Spring Batch Job的方式,做到全域统一配置,统一监控,任务高可用以及分片并发处理。
Saturn是在当当开源的Elastic Job基础上,结合各方需求和我们的实践见解改良而成。
重要特性
支持多种语言作业,语言无关(Java/Go/C++/PHP/Python/Ruby/shell)
支持秒级调度
支持作业分片并行执行
支持依赖作业串行执行
支持作业高可用和智能负载均衡
支持异常检测和自动失败转移
支持异地容灾
支持多个集群部署
支持跨机房区域部署
支持弹性动态扩容
支持优先级和权重设置
支持docker容器,容器化友好
支持cron时间表达式
支持多个时间段暂停执行控制
支持超时告警和超时强杀控制
支持灰度发布
支持异常、超时和无法高可用作业监控告警和简易的故障排除
支持失败率最高、最活跃和负荷最重的各域各节点TOP10的作业统计
经受住唯品会生产800多个节点,每日10亿级别的调度考验
使用Docker启动
$ git clone https://github.com/vipshop/Saturn
$ cd Saturn
$ git checkout develop
$ cd saturn-docker
$ chmod +x quickstart-docker.sh
$ ./quickstart-docker.sh
报错,提示没有docker-compose 命令
安装docker-compose 注意不要安装高版本的,会报错
curl -L https://github.com/docker/compose/releases/download/1.18.0/docker-compose-`uname -s`-`uname -m` -o /usr/local/bin/docker-compose
chmod +x /usr/local/bin/docker-compose
docker-compose --version
启动完成后,您可以访问Saturn-Console:http://192.168.1.51:9088
查看 vim saturn-db/saturn-console.sql 可以看到用户名和密码:admin/admin
点击搜索框,会弹出一个作业,点击进入
https://github.com/cmzdandan/saturn-demo-springboot
使用maven直接执行
saturn:run -Dnamespace=aaaa -DexecutorName=exec01 -DVIP_SATURN_CONSOLE_URI=http://192.168.1.51:9088
这里一直报错没有日志目录,默认:/apps/logs/saturn/aaaa/exec01-192.168.3.126/
默认目录又没找到办法修改,使用下面的方式
使用maven打包命令saturn:zip会生成一个-app.zip的包
scp saturn-demo-springboot-1.0.0-app.zip root@192.168.1.51:/docker
部署Saturn Executor
https://vipshop.github.io/Saturn/#/zh-cn/3.0/saturn-executor-deployment
下载上传Saturn-executor
scp saturn-executor-3.1.0-zip.zip root@192.168.1.51:/docker
yum install -y unzip zip
unzip saturn-executor-3.1.0-zip.zip
cd saturn-executor-3.1.0
mv ../saturn-demo-springboot-1.0.0-app.zip ./
unzip saturn-demo-springboot-1.0.0-app.zip
cd /docker/saturn-executor-3.1.0/bin
chmod a+x saturn-executor.sh
./saturn-executor.sh start -n aaaa -e executor_003 -d /docker/saturn-executor-3.1.0/app -DVIP_SATURN_CONSOLE_URI=http://192.168.1.51:9088
查看aaaa域下,多了一个Executor,它还没有执行的
添加作业 然后启动
ps aux|grep executor
查看执行作业日志
tail -f /apps/logs/saturn/aaaa/executor_003-192.168.1.51/saturn-executor-log.log
参考链接:
https://vipshop.github.io/Saturn/#/zh-cn/3.x/
https://github.com/vipshop/Saturn