我们公司spring cloud版本是 Spring Cloud Camden SR1
现在 spring cloud 版本是 Finchley.SR2
叶总让我评估 spring cloud 升级的必要性
Finchley 与 Spring Boot 2.0.x, 兼容,不支持 Spring Boot 1.5.x.
Camden 是构建在 Spring Boot 1.4.x, 之上,但也支持 1.5.x.
必要性 其实 就是说 升级 带来优势 和问题 之间的权衡
基线包含的jar包
- spring AMQP (rabbit) (消息队列 ,其实还support ActiveMQ ,kafka 不过对于kafka这个版本支持很弱)
2.spring data (mongodb ,redis)
3.spring retry. (重试 , 这个其实可以解决 叶总 调用第3方接口的问题 , 基线中没看到使用,有jar)
4.spring 核心功能 apo beans mvc
5.spring boot actuator
6.spring boot starter 相关组件(freemark , logging ,jdbc ….)
7.spring cloud 相关组件 (zuul ,config , eureka 等等)
8.spring security 相关组件
从上面来看的话 公司用的组件用的不是很多 , 只需要更新 spring ,spring boot , spring cloud 核心类库 就可以 ,spring涉及的第3方组件有 mongodb ,redis , log相关 , freemark 这些升级 都还好
简单说下 spring cloud 2 基于spring 5 , spring boot2 , spring 5 ,spring boot2 带来许多新的能力
Spring Framework 5 中的新特性
https://www.ibm.com/developerworks/cn/java/j-whats-new-in-spring-framework-5-theedom/hindex.html
Spring Boot 2.0 新特性
spring 5
- WebFlux (这个框架 ,要提及 servlet 规范 , 3.0 以前 , 一请求一线程 ,同步阻塞 ,tomcat 线程池配置少了 ,并发量上不去 , 3.0 ,3.1 加入异步,异步io,解决异步以及异步io问题 ,webflux在异步io 加入响应性编程,使用 大量io性质应用 )
2.http2 支持
3.Kotlin dsl
spring boot 2
1.Reactive数据库支持 (MongoDB ,redis ,Cassandra ,非常强大 ,但是说实话 ,我用第3方库也能做到 ,你不过是减少配置罢 ,但是我要依赖你的spring cloud 版本)
2.InfluxDB (公司没用)
3.jOOQ (java 代码编写sql)
4.Kafka listener支持批量消费
5.基本支持了Java 9 (jdk 9 新特性 ) (其实 spring boot 2.1.0 已经jdk11 了 , spring cloud Greenwich支持 spring boot 2.1.0 ,但现在不是正式版 Greenwich RC2 快了)
image.png我个人建议 公司框架升级 建议 等到 spring cloud Greenwich 发布正式版 , 支持jdk11 , 因为jdk11 和jdk 8 一样的 , 长时间维护版本 。
网友评论