springcloud

你对Spring Cloud多了解源自于你对Spring Boot有多了解

你对Spring Boot多了解源自于你对Spring Framework有多了解

Spring Cloud是什么

一系列框架的有序集合,基于 Spring Boot,主要还是在 JVM 范畴内来解决微服务架构的挑战

利用Spring Boot的开发便利性简化分布式系统基础设施的开发,如:

服务发现注册、配置中心、消息总线、负载均衡、断路器、数据监控等,都可以用Spring Boot的开发风格做到一键启动和部署

将目前各家公司开发的比较成熟、经得起实际考验的服务框架组合起来

通过Spring Boot风格进行再封装屏蔽掉复杂的配置和实现原理,最终给开发者留出了一套简单易懂、易部署和易维护的分布式系统开发工具包

总结来说,Spring Cloud 的思路就是,已经有的我拿来用,实在没有的我再补充

相对于 Dubbo 来说,是整合了整套解决方案的框架,而 Dubbo 只是其中的一个点

版本对应关系

Release Train 发布时间 Spring Boot版本 SC Commons版本 维护信息 主要版本
2020.0.x 2020-12 2.4.x 3.0.0 按计划支持到2023-12
Hoxton 2019-07 2.2.x, 2.3.x (从SR5起) 2.2.x Finchley系列次要版本,常规维护到2021-6
2020-07特殊维护期(不加新功能,只改紧急bug)
2021-12只发布重大错误/安全补丁
Greenwich 2018-11 2.1.x 2.1.x 2020-01停止维护
2020-12-31终结特殊维护期
Finchley 2017-10 2.0.x 2.0.x 2018发布
Edgware 2017-08 1.5.x 1.3.x
Dalston 2017-05 1.5.x 1.2.x
Brixton 2016-09 1.3.x 1.1.x
Angel 2016-05 1.2.x 1.0.x

版本号规则变更适用于所有Spring技术栈,Spring Framework、Spring Boot、Spring Cloud、Spring Data…

spring-cloud-starter-loadbalancer随Spring Cloud Commons 2.2.0开始(Hoxton),它替代了Ribbon

Pivotal OSS support policy

主要版本 3年支持。主或次要版本发布后,严重bug和安全问题,再维护一段时间(6-12个月)

阻断式升级(不向下兼容)

Spring Cloud Netflix进入维护模式,2020完全移除

Netflix 2018宣布核心组件Hystrix、Ribbon、Zuul、Archaius等均进入维护状态

Zuul 2.x,Archaius 2.x均不向下兼容,无法平滑升级,几乎等于无法使用

Spring Cloud 2020.0.0 彻底删除掉Netflix除Eureka外的所有组件(Ribbon,Hystrix,Zuul…)

Netflix 推荐替代 说明
Hystrix Resilience4j Hystrix自己也推荐你使用它代替自己
Hystrix Dashboard / Turbine Micrometer + Monitoring System 监控这件事交给更专业的组件去做
Ribbon Spring Cloud Loadbalancer Spring亲自出手
Zuul 1 Spring Cloud Gateway Spring亲自出手
Archaius 1 Spring Boot外部化配置 + Spring Cloud配置 比Netflix实现的更好、更强大

Spring Cloud LoadBalancer首次引入在Spring Cloud Commons 2.2.0(Hoxton),默认依旧是Ribbon挑大梁

Hoxton:LoadBalancerClient 有两个实现,Spring Cloud 2020.0后,BlockingLoadBalancerClient就是唯一实现了

1
mvn spring-boot:run -Dspring-boot.run.arguments=--spring.cloud.bootstrap.enabled=true