Spring Cloud 入门教程

一文读懂Spring Cloud

2023-06-28  本文已影响0人  索隆大大

Spring Cloud 是什么

概述

Spring Cloud 是一系列框架的集合,为开发人员提供了微服务系统架构中的一些常见模型,例如:配置管理、服务发现、断路器、路由、微代理、控制总线、一次性令牌、全局锁、Leader选举、分布式会话、集群状态路由、分布式消息等。
Spring Cloud 构建与Spring Boot之上,利用Spring Boot的便利性简化了微服务系统开发、启动和部署。使得开发者可以快速启动实现这些模型的服务和应用程序。

特性

SpringCloud 致力于为典型用例提供良好的开箱即用体验,并提供覆盖其他用例的扩展机制。

项目

Spring Cloud 官网可以看到包含的子项目众多(30个),让人望而生怯,直接劝退。但真正需要掌握的其实不多(6个),只要能满足上面所说特性即可,剩下的按需加入。下面从Spring Cloud的发展历程来聊聊,看下这些项目都是干啥的以及是什么时候加入的。

Spring Cloud

Spring Cloud 发展历程

起源

说起Spring Cloud,不得不提起大名鼎鼎的Netflix。2014年,当时Netflix公司推出了一系列开源的微服务工具包(俗称Netflix OSS),其中包括 Eureka(服务注册和发现)、Hystrix(熔断器)、Zuul(网关)、Ribbon(负载均衡)、Feign(服务间调用)等工具。
Spring Cloud 创始人Spencer Gibb 和 Josh Long 在学习 Netflix OSS 工具包时,意识到可以与 Spring 框架无缝集成,从而降低开发人员在构建微服务时的技术难度和成本。于是,他们开始开发 Spring Cloud,并将 Netflix OSS 的技术和 Spring 框架相结合,提供了一套全面的微服务解决方案。

主版本列表

Spring Cloud 版本都是伦敦地铁站的名词,直到2020年才采用了新的命名方式。在SR版本发布之前,会先发布一个Release版本。

发布时间 Spring Cloud 版本 Spring Boot 版本
2015年3月发布 Angel (安吉尔) 1.2.x
2016年5月发布 Brixton(布里克斯顿) 1.3.x
2016年9月发布 Camden(卡梅登) 1.4.x
2017年4月发布 Dalston(达斯顿) 1.5.x
2017年12月发布 Edgware(艾奇韦尔) 1.5.x
2018年6月发布 Finchley(芬奇利) 2.0.x
2019年4月发布 Greenwich(格林威治) 2.1.x
2019年11月发布 Hoxton(霍克斯顿) 2.2.x,2.3.x (Starting with SR5)
2020年12月发布 2020.0.x aka Ilford(埃福的) 2.4.x,2.5.x (Starting with 2020.0.3)
2021年6月发布 2021.0.x aka Jubilee(朱比利) 2.6.x,2.7.x (Starting with 2021.0.3)
2022年12月发布 2022.0.x aka Kiburn(基尔伯恩) 3.0.x

版本说明

版本 描述
SNAPSHOT 快照版。可以稳定使用,且仍在继续改进版本
PRE Preview Edition 预览版。内部测试版,主要给开发人员和测试人员使用。
RC Release Candidate 发行候选版本。基本不再加入新的功能,主要是修复bug,是最终发行正式版的前一个版本,将bug修复完就可以发行正式版本了。
GA General Availability 正式发布版本。官方开始推荐广泛使用,国外有的也用GA表示Release版本。
SR Service Release 修正版或更新版。在正式版本推出后又发现bug,对Bug的修复。

发布内容

说明:
以下列的新增项目并不是严格的只在某个版本及其以后版本中出现,也可能出现在之前版本的更新版中。只是说首次出现时在那个版本发布,因为同一时间之前的版本也在更新维护,会发布SRx版会将新的特性合并进来。
例如:Spring Cloud Function首次在2018年6月18日发布的Finchley.RELEASE中出现,但是在他之前的Edgware版本,在随后的更新版Edgware.SR4(2018年6月29)中也包含了Spring Cloud Function。

Angel (安吉尔)2015年3月发布

新增的项目:

Brixton(布里克斯顿)2016年5月发布

新增项目:

部分项目更新:

Camden(卡梅登)2016年9月发布

新增项目:

Dalston(达斯顿)2017年4月发布

新增项目:

部分项目更新:

Edgware(艾奇韦尔)2017年12月发布

新增项目:

Finchley(芬奇利)2018年6月发布

新增项目:

Greenwich(格林威治)2019年4月发布

新增项目:

Hoxton(霍克斯顿)2019年11月发布

增强了kubernetes和服务网格Service Mesh的支持

2020.0.x aka Ilford(埃福的)2020年12月发布

2020.0.0是第一个使用新的版本命名方案的Spring Cloud发行版本。
重要变更:

新增项目:

2021.0.x aka Jubilee(朱比利)2021年6月发布

正常维护更新

2022.0.x aka Kiburn(基尔伯恩)2022年12月发布

重要变更:

消失的Spring Cloud Netflix

消失的原因

Spring Cloud 的兴起和Netflix OSS密不可分,从Spring Cloud 在2015年3月发布的第一个版本Angel (安吉尔)中可以看出,最核心的项目就是Spring Cloud Netflix,其中包含的Archarus、Eureka、Hystrix、Ribbon、Zuul、Feign等都是微服务系统架构经典的解决方案,而这些方案则是在2014年由Netflix公司开源的,俗称Netflix OSS。但是在2020年12月发布的2020.0.0版本中则移除了大部分Netflix OSS组件,只剩下了Eureka,这期间到底发生了什么?要想解释清楚,还是得从Netflix公司说起。
2014年Netflix公司开源了自己的微服务解决套件也就是Netflix OSS,在当时这也是微服务系统架构最成功的落地方案,被各个大厂广泛使用,但是在微服务兴起不久,也就是2018年前后Netflix公司宣布其核心组件Hystrix、Ribbon、Zuul、Eureka等进入维护状态,不再进行新特性开发,只修复bug,这直接影响了Spring Cloud项目的发展规范,使Spring官网不得不采取应对措施,在 2019 年的在 SpringOne 2019 大会中,Spring Cloud宣布 Spring Cloud Netflix 项目进入维护模式,并在 2020 年移除相关的Netflix OSS组件。
目前的最新版2022.0.x中Spring Cloud Netflix中只剩下了Eureka,但Eureka预计也会在将来被彻底移除,毕竟不在维护了。而Feign虽说是Netflix开源的,但是在Spring Cloud 2018年6月发布的Finchley(芬奇利)中可以看出原先所有Spring Cloud Netflix Feign全部移到Spring Cloud OpenFeign中,也就是不在属于Netflix OSS了,至此,大名鼎鼎的Netflix OSS差不多都落下了帷幕。

替代方案

接下来说一说替代方案,毕竟Netflix好多组件都不在维护了。从2018年之后发现的版本中也可以看出Spring Cloud做出的努力:

方案总览

红色背景:已经被Spring Cloud移除。
黄色背景:维护模式,不再开发
蓝色背景:Spring Cloud 抽象的编程模型,提供统一的API,实现细节交由各云厂商。


方案总览

从上面表格也可以看出,Spring Cloud Netflix下线后,最好的替代品就是Spring Cloud Alibaba了。

微服务生态全景图

微服务生态全景图

上图是阿里云网站提供的全景图,供参考。

下面介绍下使用Spring Cloud Alibaba 作为微服务系统的架构时,作为一名开发人员需要学习和掌握的技能。

阿里云提供了自己的应用脚手架,方便开发者快速创建应用:https://start.aliyun.com

参考

起底Spring Boot/Cloud背后豪华的研发团队 ——独角兽公司Pivotal
Spring Cloud 移除了Hystrix、Zuul等Netflix组件

上一篇 下一篇

猜你喜欢

热点阅读