Spring Cloud是一系列微服务解决方案的组合套件。它包含分布式配置中心、服务注册与发现、路由、服务调用、负载均衡、断路器、全局锁、领导选举/集群状态和分布式消息等组件。利用这些组件,我们可以快速地构建出一个分布式系统。

Spring Boot版本介绍

由于Spring Cloud是基于Spring Boot进行构建的,所以在介绍Spring Cloud的版本之前,我们先来看下Spring Boot的版本。

官网链接:https://spring.io/projects/spring-boot#learn

Spring Boot版本号遵循主版本号.次版本号.增量版本号.里程碑版本号方案:

  • 主版本号:项目有可能进行重大重构,各主版本之间不一定能兼容。
  • 次版本号:在主版本架构不变的情况下,加入新特性,保证兼容。
  • 增量版本号:BUG的修复。
  • 里程碑版本号:当前的发布版本,主要有以下几类:
    • BUILD-SNAPSHOT:开发快照版。
    • MMilestone的缩写,里程碑版本。该版本较之前版本在功能上有重大更新,是发布稳定版本的前兆。如M1/M2
    • PRE:预览版。不建议使用,可能存在未知BUG
    • SNAPSHOT:快照版。可稳定使用,但仍在继续改进功能。
    • RCRelease Candidate的缩写。候选发布版本。此版本已相当成熟,基本不存在BUG。如RC1/RC2
    • RELEASE:最终发行版本。稳定正式版本。
    • GAGeneral Availability,正式版本,官方推荐使用此版本。在国外是用GA来标识RELEASE版本。

Spring Boot项目所有版本索引地址:https://docs.spring.io/spring-boot/docs/

Spring Cloud版本介绍

官网链接:https://spring.io/projects/spring-cloud#learn

不同于Spring Boot及其它Spring项目的版本命名方式,Spring Cloud项目的版本是根据英国伦敦地铁站的英文名称并按照字母A-Z的顺序进行控制的,例如:A(Angel)B(Brixton)C(Camden)D(Dalston)E(Edgware)F(Finchley)G(Greenwich)H(Hoxton)等。直到2020416日,Spring Cloud 2020.0.0-M1版本发布,从该版本开始,发布至Maven仓库的版本号将不再使用英国伦敦地铁站方式命名,而是改为全新的“日历化”版本命名方式。

官宣博客:https://spring.io/blog/2020/04/17/spring-cloud-2020-0-0-m1-released

“日历化”版本命名方式

“日历化”版本命名遵循YYYY.MINOR.MICRO方案:

  • YYYY:代表四位年份。
  • MINOR:代表一个递增的数字,每年从0开始递增。
  • MICRO:代表先前使用的版本号后缀,例如.0类似于.RELEASE.2类似于.SR2

预发布版本的后缀分隔符从.变更为-,例如2020.0.0-M12020.0.0-RC2;同时快照版本将不再添加BUILD-前缀,例如2020.0.0-SNAPSHOT

Spring Cloud项目中出现了新的里程碑版本号:SRService Release的缩写,表示修正版。修正了正式版本推出后发现的BUG。如SR1/SR2

虽然发布至Maven仓库的版本命名方式发生了变更,但Spring Cloud项目仍然使用英国伦敦地铁站命名方式作为代码名称。当前为Ilford

如何选择合适的版本

Spring Cloud是基于Spring Boot进行构建的,两者的版本必须相匹配,我们可以参考官网的版本映射。

官网链接:https://spring.io/projects/spring-cloud

下面列出大版本号的对应选择:

Release TrainBoot Version
2020.0.x aka Ilford2.4.x
Hoxton2.2.x, 2.3.x (Starting with SR5)
Greenwich2.1.x
Finchley2.0.x
Edgware1.5.x
Dalston1.5.x

官方提供了一个Actuator端点返回了详细的各小版本号之间的对应关系。可根据自身需要进行更加细粒度的版本选择。

端点地址为:https://start.spring.io/actuator/info