带你走进Spring Cloud的世界

开局我们先看一张Spring 社区发布的一张简化的架构图

可以看到Spring Boot 通过自动装配和各种开箱即用的特性,搞定了数据层访问、RESTful 接口、日志组件、内 置容器等等基础功能,让开发人员不费吹灰之力就可以搭建起一个应用;Spring Cloud 主外,在应用集群之外提供了各种分布式系统的支持特性,帮助轻松实现负载均衡、熔断降级、配置管理等诸多微服务领域的功能。

从两者分工可以看出来, Spring Cloud就是在Spring Boot基础上添加了支持微服务领域的功能,从而变成了微服务领域的全家桶解决方案。

Spring Cloud组件库的变更

Netflix 是一家美国的流媒体巨头,它靠着自己强大的技术实力,开发沉淀了一系列优秀的组件,这些组件经历了 Netflix 线上庞大业务规模的考验,功能特性和稳定性过硬。如 Eureka 服务注册中心、Ribbon 负载均衡器、Hystrix 服务容错组件等。后来发生的故事可能你已经猜到了,Netflix 将这些组件贡献给了 Spring 开源社区,构成了 Netflix 组件库。可以这么说,在 Spring Cloud 的早期阶段,是 Netflix 打下了的半壁江山。

后来Eureka 2.0 开源计划搁浅,而后 Netflix 宣布 Hystrix 进入维护状态,Eureka 和 Hystrix 这两款 Netflix 组 件库的明星项目停止了新功能的研发。

Spring 社区不得不开始思考替代方案,在后续的新版本中走向了"去 Netflix 化"。以至于 Netflix 的网关组件 Zuul 2.0 历经几次跳票千呼万唤始出来后,Spring Cloud 社区已经不打算集成 Zuul 2.0,而是掏出了自己的Gateway 网关。

Spring Cloud Alibaba 是由 Alibaba 贡献的组件库,随着阿里在开源路线上的持续投入,近几年阿里系在开源领域的声音非常响亮。Spring Cloud Alibaba 凝聚了阿里系在电商 领域超高并发经验的重量级组件,保持了旺盛的更新活力,成为了 Spring Cloud 社区的一股新生代力量,逐渐取代了旧王 Netflix 的江湖地位。

功能特性 Alibaba组件 Netflix组件 SpringCloud官方或第三方开源组件库
服务治理 Nacos Eureka Consul
负载均衡 Ribon LoadBalancer
服务间调用 Dubbo(RPC) Netflix Feign OpenFeign
服务容错 Sentinel Hystrix Resilence4j
配置中心 Nacos SpringCloud config
消息总线 Bus
服务网关 Zuul Gateway
分布式链路追踪 Sleuth Zipkin
消息事件驱动 RockMQ Stream
分布式事务 Seata

上面表格中列出的业务开发过程中的常用功能性组件, 当然我们平时的使用中也有很多其他的开源组件可供选择,比如消息中间件还可以使用Kafaka。

Spring Cloud版本更新策略

我们来看看Spring Cloud各个版本号以及其更新节奏

版本代号 版本号 发布时间
Angel 1.0.x 2015年5月
Brixton 1.1.x 2016年5月
Camden 1.2.x 2017年7月
Dalston 1.3.x 2017年4月
Edgware 1.4.x 2017年11月
Finchley 2.0.x 2018年6月
Greenwich 2.1.x 2019年1月
Hoxton 2.2.x 2019年11月
Ilford 2020.0.x 2020年12月
Jubilee 2021.0.x 2021年12月
Kilburn 2022.0.x 2022年11月
Leyton 2023.0.x 2023年11月
Moorgate 2024.0.x 2024年12月
Northfields 2054.0.x 预计2025

具体的可以参考 github.com/spring-clou...

和springboot版本对应关系

Spring Cloud 版本 Spring Boot 版本
2025.0.x (Northfields) 待定
2024.0.x (Moorgate) 待定
2023.0.x (Leyton) 3.2.x
2022.0.x (Kilburn) 3.0.x, 3.1.x
2021.0.x (Jubilee) 2.6.x, 2.7.x
2020.0.x (Ilford) 2.4.x, 2.5.x
Hoxton 2.2.x, 2.3.x
Greenwich 2.1.x
Finchley 2.0.x
Edgware 1.5.x
Dalston 1.5.x

你可以从spring.io/projects/sp...

创建项目的时候你可以通过start.spring.io/,这样当选择 Spring Boot 版本时,它会自动显示兼容的 Spring Cloud 版本。

或者通过spring.io/blog 查看一些信息。

Alibaba Spring Cloud版本对应关系

如果使用alibaba springcloud对应关系如下:

Spring Cloud Alibaba Version Spring Cloud Version Spring Boot Version JDK Version
2023.0.0.0 Spring Cloud 2023.0.0 3.2.x JDK 17+
2022.0.0.0 Spring Cloud 2022.0.0 3.0.x JDK 17+
2021.0.5.0 Spring Cloud 2021.0.5 2.6.13 JDK 8+
2021.0.4.0 Spring Cloud 2021.0.4 2.6.11 JDK 8+
2021.0.1.0 Spring Cloud 2021.0.1 2.6.3 JDK 8+
2.2.7.RELEASE Hoxton.SR12 2.3.12.RELEASE JDK 8
2.2.6.RELEASE Hoxton.SR9 2.3.2.RELEASE JDK 8
2.1.4.RELEASE Greenwich.SR6 2.1.13.RELEASE JDK 8
2.0.4.RELEASE Finchley.SR4 2.0.9.RELEASE JDK 8

可以通过 github.com/alibaba/spr... 这里查看更详细的对应关系

相关推荐
昵称为空C2 小时前
SpringBoot3 http接口调用新方式RestClient + @HttpExchange像使用Feign一样调用
spring boot·后端
架构师沉默2 小时前
设计多租户 SaaS 系统,如何做到数据隔离 & 资源配额?
java·后端·架构
RoyLin2 小时前
TypeScript设计模式:适配器模式
前端·后端·node.js
该用户已不存在3 小时前
Mojo vs Python vs Rust: 2025年搞AI,该学哪个?
后端·python·rust
Moonbit3 小时前
MoonBit 正式加入 WebAssembly Component Model 官方文档 !
前端·后端·编程语言
Goland猫3 小时前
电商架构图
后端
Java中文社群3 小时前
重要:Java25正式发布(长期支持版)!
java·后端·面试
我是天龙_绍3 小时前
Whisper 通过 mp3输出中文
后端
zjjuejin3 小时前
Maven环境搭建
后端·maven
我是天龙_绍3 小时前
项目根目录有requirements.txt 如何安装
后端