Spring Cloud 项目目前是快速迭代期,版本变化快。
Spring Cloud并没有熟悉的数字版本号,而是对应一个开发代号。
Cloud代号
Boot版本(train)
Boot版本(tested)
lifecycle
Angle
1.2.x
incompatible with 1.3
EOL in July 2017
Brixton
1.3.x
1.4.x
2017-07卒
Camden
1.4.x
1.5.x
-
Dalston
1.5.x
not expected 2.x
-
Edgware
1.5.x
not expected 2.x
-
Finchley
2.x
not expected 1.5.x
-
开发代号看似没有什么规律,但实际上首字母是有顺序的,比如:Dalston版本,我们可以简称 D 版本,对应的 Edgware 版本我们可以简称 E 版本。
二者均基于SpringBoot的1.5.x版本。但支持其他组件的版本不同,如以 Dalston.SR4 和 Edgware.RELEASE 来对比:
spring-cloud-config 分别对应 1.3.3和 1.4.0;
spring-cloud-netflix 分别对应 1.3.5和 1.4.0;
spring-cloud-consul 分别对应 1.2.1和 1.3.0;
spring-cloud-gateway 前者不支持,后者 1.0.0。
每个小版本的不同,会有细微差别。
F版本是个绝对的大版本,几乎所有组件,全部同步变更版本号为2.x。
Spring Cloud 小版本分为:
SNAPSHOT: 快照版本,随时可能修改
M: MileStone,M1表示第1个里程碑版本,一般同时标注PRE,表示预览版版。
SR: Service Release,SR1表示第1个正式版本,一般同时标注GA:(GenerallyAvailable),表示稳定版本。
从这一点来看,选择哪个版本都不是大问题,但提醒一下,遇到坑时,最好根据版本进行查询,否则你会发现你找到的办法不行。实际上是版本不匹配。
如果你项目需要和其他老项目交叉,以兼容为第一要务。
如果全新项目,可以考虑较新版本,如E版。如果你爱好踩坑,F拿去。
小版本没啥可说的,尝鲜:SNAPSHOT,生产:GA。
在写本篇文章时,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
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