Spring Cloud是什么?
“Spring Cloud provides tools for developers to quickly build some of the common patterns in distributed systems.”
Spring Cloud为开发者提供了一套可以用来快速搭建分布式系统中常见模式的工具。提取主干即是Spring Cloud提供了一套工具。这些工具为开发人员提供了分布式系统下常见问题的通用解决方案。这些方案涵盖了配置管理,服务发现,断路器,智能路由,微代理,控制总线,一次性TOKEN,全局锁,leader选举,分布式session等。
Spring Cloud版本
在写本篇文章时,Spring Cloud版本演进情况如下:
版本名称 | 版本 |
---|---|
Finchley | snapshot版 |
Edgware | snapshot版 |
Dalston SR1 | 当前最新稳定版本 |
Camden SR7 | 稳定版本 |
Brixton SR7 | 稳定版本 |
Angel SR6 | 稳定版本 |
从下Angel到上Finchley可以看出,版本的第一个字母是按照A-Z顺序编排的。这些单词是什么含义呢,大概的搜一下可以得出基本都是地名,官方说明是这些版本号的单词来自于英国伦敦的地铁站站名。
那么为什么要用单词而不是数字类型的版本号呢?
因为Spring Cloud包含了一系列的子系统,Spring Cloud Config,Spring Cloud Netflix,Spring Cloud Bus等,为了防止与这些子系统的版本号混淆,Spring Cloud的版本号全部使用英文单词。
版本号后面的SRX,X代表一个数字,这个是小版本号,就是在特定的版本中,修复一些致命问题,做的升级版本号。
Spring Cloud与Spring Boot版本匹配关系
Spring Cloud | Spring Boot |
---|---|
Finchley | 兼容Spring Boot 2.0.x,不兼容Spring Boot 1.5.x |
Dalston和Edgware | 兼容Spring Boot 1.5.x,不兼容Spring Boot 2.0.x |
Camden | 兼容Spring Boot 1.4.x,也兼容Spring Boot 1.5.x |
Brixton | 兼容Spring Boot 1.3.x,也兼容Spring Boot 1.4.x |
Angel | 兼容Spring Boot 1.2.x |
解决方案:
pom指定依赖版本,dependencyManagement引用版本号
<properties> <project.build.sourceEncoding>UTF-8</project.build.sourceEncoding> <project.reporting.outputEncoding>UTF-8</project.reporting.outputEncoding> <java.version>1.8</java.version> <fastjson.version>1.2.16</fastjson.version> <druid.version>1.0.25</druid.version> <apache.poi.version>3.14</apache.poi.version> <common.version>1.0.0-SNAPSHOT</common.version> <spring-boot.version>2.0.3.RELEASE</spring-boot.version> <spring-cloud.version>Finchley.RELEASE</spring-cloud.version> </properties>
<dependencyManagement> <dependencies> <dependency> <groupId>org.springframework.cloud</groupId> <artifactId>spring-cloud-dependencies</artifactId> <version>${spring-cloud.version}</version> <type>pom</type> <scope>import</scope> </dependency> </dependencies> </dependencyManagement>