01-SpringCloud介绍
简介
Spring Cloud provides tools for developers to quickly build some of the common patterns in distributed systems (e.g. configuration management, service discovery, circuit breakers, intelligent routing, micro-proxy, control bus). Coordination of distributed systems leads to boiler plate patterns, and using Spring Cloud developers can quickly stand up services and applications that implement those patterns. They will work well in any distributed environment, including the developer’s own laptop, bare metal data centres, and managed platforms such as Cloud Foundry.
以上是Spring官方的介绍,大致的意思就是:SpringCloud为开发人员提供了快速构建分布式系统中的一些常见模式的工具(如配置管理、服务发现、断路器、智能路由、微代理、控制总线)。分布式系统的协调能力导致了“锅炉板模式”,并且使用Spring Cloud能够让开发者通过这个模式快速的搭建服务和应用。它们将在任何分布式环境中工作,包括开发者自己的笔记本电脑、裸金属数据中心和云铸造等管理平台。
Boiler Plate Patterns可以理解为Spring Cloud为每一个微服务节点提供一种开发样板,业务开发人员按照样板结构去开发即可。一个优秀的架构师在做技术选型或编写底层框架时,时时刻刻都会考虑面向业务的开发人员会以何种方式去使用框架,有统一的样板或者模式来遵循是对于任何刚使用框架的开发者都是非常有价值的。
历史版本
英文 | 中文 | 终结版本 | boot大版本 | boot代表 |
Angel | 安吉尔 | SR6 | 1.2.X | 1.2.8 |
Brixton | 布里克斯顿 | SR7 | 1.3.X | 1.3.8 |
Camden | 卡梅登 | SR7 | 1.4.X | 1.4.2 |
Dalston | 达斯顿 | SR5 | 1.5.X | * |
Edgware | 艾奇韦尔 | SR5 | 1.5.X | 1.5.19 |
Finchley | 芬奇利 | SR2 | 2.0.X | 2.0.8 |
Greenwich | 格林威治 | SR6 | 2.1.X | 2.1.2 |
Hoxton | 霍克斯顿 | SR12 | 2.2.X | 2.2.6 [2.2.x, 2.3.x (Starting with SR5)] |
2020.0.4-aka Ilford | 埃福的 | GA | 2.5.7 | 2.5.7(0.5版本) 2.4.x, 2.5.x (Starting with 2020.0.3) |
2021.0.0 aka Jubilee | 朱比利 | GA | 2.6.x 2.6.1 | GA 2.6.x 2.6.1,spring版本5.3.13 |
版本说明
- SNAPSHOT :快照版,可以稳定使用,且仍在继续改进版本。
- PRE:preview edition,预览版,内部测试版. 主要是给开发人员和测试人员测试和找BUG用的,不建议使用;
- RC:Release Candidate,发行候选版本,基本不再加入新的功能,主要修复bug。是最终发布成正式版的前一个版本,将bug修改完就可以发布成正式版了。
- SR:Service Release,表示bug修复。修正版或更新版,修正了正式版推出后发现的Bug。
- GA:General Availability,正式发布的版本,官方开始推荐广泛使用,国外有的用GA来表示release版本。
SpringCloud 2021最新版本
SpringCloud官网截止到现在,最新版本更新到SpringCloud 2021.0.1 ,前段时间才刚发布,这是正版本发布版本,兼容 Spring Boot 2.6.x 。
从上面图我们可以看到,Spring Cloud有如此多的模块:
- Spring Cloud Azure : 微软提供的一套微服务实现。
- Spring Cloud Alibaba : 阿里提供的一套微服务实现。
- Spring Cloud for Amazon Web Services:亚马逊提供的一套微服务实现。
- Spring Cloud Bus :消息总线
- Spring Cloud Circuit Breaker : 断路器
- Spring Cloud CLI:命令行工具
- Spring Cloud for Cloud Foundry:VMware公司提供的一套微服务实现。
- Spring Cloud - Cloud Foundry Service Broker:快速构建Cloud Foundry服务实例的框架。
- Spring Cloud Cluster
- Spring Cloud Commons:SpringCloud的公共包(包含了commons、context、loadbalancer),定义了服务注册、服务发现等。
- Spring Cloud Config :配置中心
- Spring Cloud Connectors
- Spring Cloud Consul
- Spring Cloud Contract
- Spring Cloud Function
- Spring Cloud Gateway:Spring Cloud官方实现的网关。
- Spring Cloud GCP: 谷歌提供的一套微服务实现。
- Spring Cloud Kubernetes
- Spring Cloud Netflix:奈飞提供的一套云服务实现。(最早)
- Spring Cloud Open Service Broker
- Spring Cloud OpenFeign : Spring Cloud维护的Rest 客户端。
- Spring Cloud Pipelines
- Spring Cloud Schema Registry
- Spring Cloud Security
- Spring Cloud Skipper
- Spring Cloud Sleuth
- Spring Cloud Stream
- Spring Cloud Stream Applications
- Spring Cloud Task
- Spring Cloud Task App Starters
- Spring Cloud Vault
- Spring Cloud Zookeeper
- Spring Cloud App Broker
Netflix公司是目前微服务落地中最成功的公司,它开源了诸如Eureka、Hystrix、Zuul、Feign、Ribbon等等广大开发者所知微服务套件,统称为Netflix OSS;
在当时Netflix OSS成为微服务组件上事实的标准;但是微服务兴起不久,也就是在 2018 年前后Netflix公司宣布其核心组件Hystrix、Ribbon、Zuul、Eureka等进入停更状态,不再进行新特性开发,只修 BUG.
Netflix停更直接影响了Spring Cloud项目的发展路线,Spring 官方不得不采取了应对措施,在 SpringOne 2019 大会中,Spring Cloud宣布 Spring Cloud Netflix 项目进入维护模式,并在 2020 年移除相关的Netflix OSS组件。
Alibaba公司也紧随潮流。基于之前开源的Dubbo,陆陆续续又开源了Nacos、Sentinel、Seata、RocketMQ等。在我们国内也是广泛使用。
至于其他公司实现的微服务,在我们国内使用的不多。所以在之后我们将以Netflix+Spring 官方 和Alibaba两套微服务来展开学习。