本文参考https://www.cnblogs.com/yourbatman/p/14182433.html 主要是随着Netflix 下的众多项目不再维护,使得Spring Cloud 官方不得不采用其余组件来代替Netflix组件,这意味着自SpringCloud 2020.0.0版本后将不再平滑过渡(向下不兼容)。
1. SpringCloud 各版本与SpringBoot 对应关系
SpringCloud 版本号起初均采用伦敦地铁站名称命名,如Hoxton
等,而2020.0.0版本又名Ilford
,现在改名为2020.0.0
,之后将采用类似的命名方式(很好的照顾到非英文地区)。
Release Train | 发布时间 | SpringBoot版本 | SC Common版本 |
---|---|---|---|
2020.0.x | 2020-12 | 2.4.x | 3.0.0 |
Hoxton | 2019-07 | 2.2.x,2.3.x(从SR5起) | 2.2.x |
Greenwich | 2018-11 | 2.1.x | 2.1.x |
Finchley | 2017-10 | 2.0.x | 2.0.x |
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 |
Angle | 2016-05 | 1.2.x | 1.0.x |
特别提醒,
spring-cloud-starter-loadbalancer
是伴随着Spring Cloud Commons 2.2.0版本才开始商用的(Hoxton
版本),在这个版本及其以后代替了Ribbon。
2. 结束的Netflix 项目以及替代方案
随着Netflix项目进入维护模式,Spring Cloud对一直以来严重依赖的Netflix OSS 套件进行了大换血,包括Hystrix,Ribbon,Zuul,Archaius等。
2018年至今处于维护状态的Netflix模块有(包含响应的starter):
- spring-cloud-netflix-archaius
- spring-cloud-netflix-hystrix-contract
- spring-cloud-netflix-hystrix-dashboard
- spring-cloud-netflix-hystrix-stream
- spring-cloud-netflix-hystrix
- spring-cloud-netflix-ribbon
- spring-cloud-netflix-turbine-stream
- spring-cloud-netflix-turbine
- spring-cloud-netflix-zuul
自2020.0.0
版本开始,Netflix仅保留了Netflix-Eureka(Server/Client)组件(Feign依旧是可以使用的,OpenFiegn)
Netflix 组件替代方案
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
是再Hoxton发布的时候就引入了,现在移除了Ribbon后使用它来做Ribbon负载均衡。
详细教程可以参考官方的 https://spring.io/guides/gs/spring-cloud-loadbalancer.
3. 其余问题(后续可能回补充)
- OpenFeign 中的熔断器Hystrix在2020.0.0版本及其以后将不能使用,具体到
application.yml
中的
feign:
hystrix:
enabled: true
该项将不存在
取而代之的是使用
feign:
circuitbreaker:
enabled: true
另外需要使用替代方案实现服务降级,如前文提到的 Resilience4j