(一)vip saturn任务调度器使用:saturn升级支持sb2.x记要
微信公众号:架构师前线
原创声明:本文系作者原创,谢绝个人、媒体、公众号或网站未经授权转载,违者追究其法律责任。
目录
文章目录
- 目录
- 一、调整细节
- 1.0 saturn-job 项目调整
- 1.1 saturn-console-api 子项目调整
- 1.2 saturn-core 子项目调整
- 1.3 saturn-it 子项目调整
- 1.4 saturn-demo-springboot 子项目调整
- 1.5 saturn-demo-springboot-embedded 子项目调整
- 1.6 saturn-job-sharding 子项目调整
- 1.7 saturn-console 子项目调整
- 1.8 saturn-springboot 子项目调整
vip saturn 是唯品会开源的任务调度平台,支持多语言端任务开发,不过其中有些细节处理得不是太好,比如尽管spring boot 1.x已经停止维护,但是vip saturn commiter 还未支持sb 2.x。目前我从生产实战中看到的saturn的一些不足点:
- 最新的 saturn 3.3.1 版 仅支持spring boot 1.x,还不支持2.x。
- executor 中网卡名必须包含eth0字符串问题,其实可以微调整支持指定网卡。
- 无论是java栈还是shell栈,executor实例部署上的灵活性较差,每家公司的CI/CD流程差别都特别大,saturn 打包方式限制太多,灵活支持机制较差。
- 程序包的部署是可执行jar包方式,这种方式不利增量升级。
- 配置文件还不能很直接接入apollo。
- 好多依赖工具包版本很低了,没有即时更新到最新稳定版本。
- 内嵌接入job的方式,更符合研发对job的理解。
…等等小问题。
本人在使用saturn过程中,基于3.3.1版本,对这些看到的小问题在公司内部做了些调整,个人认为对saturn 使用会更容易一些,特别是对新手。希望能帮助到更多计划选型使用saturn的coder。
本文将记录saturn升级支持sb 2.x时,涉及到的一些局部调整。
一、调整细节
1.0 saturn-job 项目调整
pom.xml文件中:
<gson.version>2.5</gson.version>
<springframework.version>4.3.2.RELEASE</springframework.version>
<spring-boot-test.version>1.5.3.RELEASE</spring-boot-test.version>
<spring.data.commons.version>1.13.16.RELEASE</spring.data.commons.version>
<druid.version>0.2.9</druid.version><!--调整为:-->
<gson.version>2.6.2</gson.version>
<springframework.version>5.1.8.RELEASE</springframework.version>
<spring-boot-test.version>2.1.6.RELEASE</spring-boot-test.version>
<spring.data.commons.version>2.1.10.RELEASE</spring.data.commons.version>
<druid.version>1.1.19</druid.version>
增加如下依赖包:
<dependency><groupId>ch.qos.logback</groupId><artifactId>logback-core</artifactId><version>${logback.version}</version>
</dependency>
删除:
<javaee-web-api.version>7.0</javaee-web-api.version>
<dependency><groupId>javax</groupId><artifactId>javaee-web-api</artifactId><version>${javaee-web-api.version}</version><!--<scope>provided</scope> -->
</dependency>
调整druid:
<dependency><groupId>com.alibaba.druid</groupId><artifactId>druid-wrapper</artifactId><version>${druid.version}</version>
</dependency><!--调整为:-->
<dependency><groupId>com.alibaba</groupId><artifactId>druid</artifactId><version>${druid.version}</version>
</dependency>
1.1 saturn-console-api 子项目调整
pom.xml文件中:
将 spring-boot-dependencies 依赖包版本从1.4.x改为2.x,比如改为2.1.6.RELEASE ;
去掉如下依赖包:
<dependency><groupId>org.springframework.cloud</groupId><artifactId>spring-cloud-starter</artifactId><version>1.1.1.RELEASE</version><exclusions><exclusion><artifactId>logback-classic</artifactId><groupId>ch.qos.logback</groupId></exclusion></exclusions>
</dependency><dependency><groupId>com.fasterxml.jackson.core</groupId><artifactId>jackson-databind</artifactId>
</dependency><dependency><groupId>org.springframework</groupId><artifactId>springloaded</artifactId><scope>provided</scope>
</dependency><dependency><groupId>org.springframework.boot</groupId><artifactId>spring-boot-starter-tomcat</artifactId><scope>provided</scope>
</dependency><dependency><groupId>ch.qos.logback</groupId><artifactId>logback-core</artifactId>
</dependency>
增加如下依赖包:
<dependency><groupId>ch.qos.logback</groupId><artifactId>logback-classic</artifactId>
</dependency>
druid调整:
<dependency><groupId>com.alibaba.druid</groupId><artifactId>druid-wrapper</artifactId>
</dependency><!--调整为:-->
<dependency><groupId>com.alibaba</groupId><artifactId>druid</artifactId>
</dependency>
PageableUtil类中的getOffset 返回值类型从int改为long,相应的 JobOverviewController中的getJobSubListByPage方法调用getOffset时,需要强转为int。
1.2 saturn-core 子项目调整
去掉:
<dependency><groupId>ch.qos.logback</groupId><artifactId>logback-core</artifactId>
</dependency>
1.3 saturn-it 子项目调整
spring-boot-dependencies调整:
<dependencyManagement><dependencies><dependency><!-- Import dependency management from Spring Boot --><groupId>org.springframework.boot</groupId><artifactId>spring-boot-dependencies</artifactId><version>1.4.0.RELEASE</version><type>pom</type><scope>import</scope></dependency></dependencies>
</dependencyManagement><!--调整为:-->
<dependencyManagement><dependencies><dependency><!-- Import dependency management from Spring Boot --><groupId>org.springframework.boot</groupId><artifactId>spring-boot-dependencies</artifactId><version>2.1.6.RELEASE</version><type>pom</type><scope>import</scope><exclusions><exclusion><groupId>ch.qos.logback</groupId><artifactId>logback-classic</artifactId></exclusion><exclusion><groupId>ch.qos.logback</groupId><artifactId>logback-core</artifactId></exclusion></exclusions></dependency></dependencies></dependencyManagement>
删除:
<dependency><groupId>ch.qos.logback</groupId><artifactId>logback-core</artifactId><version>${logback.version}</version>
</dependency>
logback-classic调整:
<dependency><groupId>ch.qos.logback</groupId><artifactId>logback-classic</artifactId>
</dependency><!--调整为:-->
<dependency><groupId>ch.qos.logback</groupId><artifactId>logback-classic</artifactId><version>${logback.version}</version>
</dependency>
1.4 saturn-demo-springboot 子项目调整
spring-boot-starter-parent 的版本号改为:2.1.6.RELEASE
重写Application类的main函数,改为如下:
public static void main(String[] args) {SpringApplication.run(Application.class, args);}
1.5 saturn-demo-springboot-embedded 子项目调整
spring-boot-starter-parent 的版本号改为:2.1.6.RELEASE
1.6 saturn-job-sharding 子项目调整
去掉:
<dependency><groupId>ch.qos.logback</groupId><artifactId>logback-core</artifactId>
</dependency>
1.7 saturn-console 子项目调整
去掉:
<dependency><groupId>org.springframework.boot</groupId><artifactId>spring-boot-starter-tomcat</artifactId><!--<scope>provided</scope> -->
</dependency><dependency><groupId>javax.servlet</groupId><artifactId>javax.servlet-api</artifactId>
</dependency><dependency><groupId>javax</groupId><artifactId>javaee-web-api</artifactId>
</dependency>
增加:
<dependency><groupId>ch.qos.logback</groupId><artifactId>logback-classic</artifactId>
</dependency>
spring-boot-maven-plugin调整
<plugin><groupId>org.springframework.boot</groupId><artifactId>spring-boot-maven-plugin</artifactId><version>1.4.0.RELEASE</version><configuration><mainClass>com.vip.saturn.job.console.springboot.SaturnConsoleApp</mainClass><layout>JAR</layout><executable>true</executable><classifier>exec</classifier></configuration><executions><execution><goals><goal>repackage</goal></goals></execution></executions>
</plugin><!--调整为:-->
<plugin><groupId>org.springframework.boot</groupId><artifactId>spring-boot-maven-plugin</artifactId><configuration><mainClass>com.vip.saturn.job.console.springboot.SaturnConsoleApp</mainClass><layout>JAR</layout><executable>true</executable><classifier>exec</classifier></configuration><executions><execution><goals><goal>repackage</goal></goals></execution></executions>
</plugin>
application.properties中增加:
spring.main.allow-bean-definition-overriding=true
saturn.stdout=true
1.8 saturn-springboot 子项目调整
<springboot.version>1.5.16.RELEASE</springboot.version>
版本号改为: 2.1.6.RELEASE
GenericSpringBootSaturnApplication类:
protected Object source() {return this.getClass();
}
改为:
protected Class source() {return this.getClass();
}
(一)vip saturn任务调度器使用:saturn升级支持sb2.x记要相关推荐
- 基于单片机的简单的任务调度器
近来工作之余,研究了一下APM的源码. APM源码连接https://pan.baidu.com/s/17Dg1oEJT_fj12DM1BmZWxA 发现源码中有一个简单的任务调度器,不太重要的任务都 ...
- java 分布式任务_一个简单的基于 Redis 的分布式任务调度器 —— Java 语言实现...
折腾了一周的 Java Quartz 集群任务调度,很遗憾没能搞定,网上的相关文章也少得可怜,在多节点(多进程)环境下 Quartz 似乎无法动态增减任务,恼火.无奈之下自己撸了一个简单的任务调度器, ...
- 从零入门 FreeRTOS 操作系统之任务调度器
从零入门 FreeRTOS 操作系统之任务调度器 1 任务调度器的概念 FreeRTOS 中提供的任务调度器是基于优先级的全抢占式调度:在系统中除了中断处理函数.调度器上锁部分的代码和禁止中断的代码是 ...
- 面试八股文:你写过自定义任务调度器吗?
最近入职了新公司,尝试阅读祖传代码,记录并更新最近的编程认知. 思绪由Q1引发,后续Q2.Q3基于Q1的发散探究 Q1. Task.Run.Task.Factory.StartNew 的区别? 我们常 ...
- 昇腾AI处理器软件栈--任务调度器(TS)
任务调度器与运行管理器工程组成软硬件之间的大坝系统.在执行时,任务调度器对硬件进行任务的驱动,为昇腾AI处理器提供具体的目标任务,与运行管理器一起完成任务调度流程,并将输出数据回送给运行管理器,充当了 ...
- 18 TaskScheduler任务调度器抽象基类——Live555源码阅读(一)任务调度相关类
这是Live555源码阅读的第二部分,包括了任务调度相关的三个类.任务调度是Live555源码中很重要的部分. 本文由乌合之众 lym瞎编,欢迎转载 http://www.cnblogs.com/ol ...
- TaskScheduler一个.NET版任务调度器
TaskScheduler是一个.net版的任务调度器.概念少,简单易用. 支持SimpleTrigger触发器,指定固定时间间隔和执行次数: 支持CronTrigger触发器,用强大的Cron表达式 ...
- 【Hadoop2.6】Yarn中任务调度器
概述 Yarn中有三种任务调度器:FIFO调度器(FIFO Scheduler).容量调度器(Capacity Scheduler).公平调度器(Fair Scheduler). 任务调度器介绍 1. ...
- Quartz任务调度器详解
关键字: 参考文章:http://blog.sina.com.cn/s/blog_4d36e1ae0100tost.html 价值文章分享:http://wenku.baidu.com/link?ur ...
最新文章
- 混沌与分叉python 实现
- [html] 如何在页面上显示Emoji表情?
- linux查看目录下文件个球,球服务翻译……只找到以前版本的。新版的服务名称改了……...
- Mr.J-- HTTP学习笔记(九)-- Web机器人
- C#.NET验证码智能识别学习笔记---06 解决java jre问题:JTessBoxEditor.jar打开的时报找不到或无法加载主类 com.sun.tools.javac.Main错误
- SAP License:SAP工业4.0 创新智能物流解决方案
- Codeforces Round #310 (Div. 1) B. Case of Fugitive set
- ubantu 软件安装教程汇总(持续更新)
- 单向链表环测试并返回环起始节点
- 《Adobe Flash CS4中文版经典教程》——1 FLASH CS4快速入门1.1 启动Flash并打开文件...
- 如何才能实现文字转语音播放?只要这三个步骤就能快速搞定!
- java 定时任务 单元测试_介绍java 定时任务最简单的3种实现方法
- QGIS二次开发:鼠标在地图上移动时,状态栏显示鼠标所在位置经纬度
- CSP_201712-1_最小差值(Java)
- 一个高效的敏感词过滤方法(PHP)
- Java封装的四个关键字
- 安卓禁用硬件加速_Android硬件加速详解
- 书籍《TRIZ理论》
- LeetCode 374题
- note_47: sony wf-1000xm4右耳机忽然连不上