一、Spring Cloud各个版本,以及兼容的Spring Boot版本
很多人在使用springboot和springcloud,但是对于这两者之间的版本关系不是很清楚,特别是在面临升级的时候不知道该如何操作。
例如,我现在使用的是1.5.1版本的springboot 和Edgware.RELEASE版本的springcloud,我想升级到springboot到2.0.0, springcloud需要升级吗? 或者我想单独升级springcloud到Finchley.RELEASE,可以不用升级springboot吗?
如果一次升级多个基础框架,可能面临的风险较大,需要我们审慎评估和测试,所以一般我们都是小步快速升级,先升级一个,上线没问题后,再升级另外一个,最终达到升级整改项目框架。可是有时我们必须理清楚这些要升级的框架之间的依赖关系,否则就无法有的放矢,因为升级了A,可能系统就无法正常运行,因为A和他依赖的某个框架是同步绑定版本的,升级A就必须同步升级他的依赖。而SpringCloud和Springboot就存在这样的关系。
二、补充
(1)为什么springcloud版本用的是单词而不是数字呢?
设计的目的是为了更好的管理每个SpringCloud子项目的清单,避免自己的版本号与子项目的版本号混淆。
cloud版本都是伦敦地铁站的名词,首字母越靠后表示版本号越大。
(2)版本号介绍
版本号介绍:
- Alpha:不建议使用,主要是以实现软件功能为主,通常只在软件开发者内部交流,Bug较多;
- Beta:该版本相对于α版已有了很大的改进,消除了严重的错误,但还是存在着一些缺陷,需要经过多次测试来进一步消除;
- GA:General Availability,正式版本,官方推荐使用此版本,在国外都是用GA来说明release版本;
- M:又叫里程碑版本,表示该版本较之前版本有功能上的重大更新;
- PRE(不建议使用):预览版,内部测试版,主要是给开发人员和测试人员测试和找BUG用的;
- Release:最终版本,Release不会以单词形式出现在软件封面上,取而代之的是符号(R);
- RC:该版本已经相当成熟了,基本上不存在导致错误的BUG,与即将发行的正式版相差无几;
- SNAPSHOT:快照版,可以稳定使用,且仍在继续改进版本。
三、升级
- Eureka1.x官方已经停止更新, Eureka2.x开始闭源了。阿里的Ncos及Hashicorp的Consul也是不错的选择。
- Feigin netflix公司停更,Spring官方已经推出自己的Open Feign
- Hystrix 停更后,官网推荐Resilience4J,国内也大量在使用阿里的Sentinel
- Zuul Spring官方推出了自己的gateway
- Config 停更后,可以使用上手简单阿里的Nacos或携程Apollo
停更后,可选择的替代方案如下(×的表示之前的组件,现在停更了的;√ 的表示新的替换后的组件):