Spring Cloud 是一个基于Spring Boot实现的微服务开发框架。
Spring Cloud项目的官方网址:https://spring.io/projects/spring-cloud
Spring Cloud 官方Github https://github.com/spring-cloud/
版本
SpringCloud是一个由许多子项目组成的综合项目, 为了管理SpringCloud与各子项目的版本依赖关系,发布了一个清单,其中包括了某个SpringCloud版本对应的子项目版本。 为了避免SpringCloud版本号与子项目版本号混淆,SpringCloud版本采用了名称而非版本号的命名,这些版本的名字采用了伦敦地铁站的名字,根据字母表的顺序来对应版本时间顺序,
大版本号
Spring Cloud 大版本 | Spring Boot 大版本 | 说明 |
---|---|---|
Angel | 兼容Spring Boot 1.2.x | 不建议使用 |
Brixton | 兼容Spring Boot 1.3.x,也兼容Spring Boot 1.4.x | 不建议使用 |
Camden | 兼容Spring Boot 1.4.x,也兼容Spring Boot 1.5.x | 不建议使用 |
Dalston | 兼容Spring Boot 1.5.x,不兼容Spring Boot 2.0.x | 不建议使用 |
Edgware | 兼容Spring Boot 1.5.x,不兼容Spring Boot 2.0.x | 已于2019/08/01 退役 |
Finchley | 兼容Spring Boot 2.0.x,不兼容Spring Boot 1.5.x | 要求 jdk1.8 |
Greenwich | 兼容Spring Boot 2.1.x | 推荐使用 |
Hoxton | 兼容Spring Boot 2.2.x | 目前版本到 M2 |
版本号含义
Spring Cloud 处于快速迭代状态,开发的不同阶段对应着不同的版本号,一个大版本是从 BUILD-SNAPSHOT 开始的,他表示快照版本,这个版本的代码不是固定的,而是处于变化之中。
等到开发到了一定的阶段比如50%,就会发布一个MX 版本,他表示里程碑版。比如M1表示第一个里程碑版
经过数个里程碑版后,已经开发的差不多了,这是会发布候选发布版(RCX),该版本为正式版提供一个发行观察期,主要修复一些bug,RC1 表示第一个候选发布版
在经过一个或多个候选发布版后,正式版(RELEASE) 就发布了
正式版发布之后,如果有被发现了错误和bug,修复之后就会发布SRX版,他也叫正式版。
在SpringCloud 官网上,每个版本号后面还带有一个英文标示,这些英文标示是什么意思呢
标示 | 含义 |
---|---|
CURRENT | 当前推荐的版本 |
GA | 稳定版,可用于生产 |
PRE | 里程碑版 |
SNAPSHOT | 快照 |
子项目
Spring Cloud Config
集中配置管理工具,分布式系统中统一的外部配置管理,默认使用Git来存储配置,可以支持客户端配置的刷新及加密、解密操作。
Spring Cloud Netflix
Netflix OSS 开源组件集成,包括Eureka、Hystrix、Ribbon、Feign、Zuul等核心组件。
- Eureka:服务治理组件,包括服务端的注册中心和客户端的服务发现机制;
- Ribbon:负载均衡的服务调用组件,具有多种负载均衡调用策略;
- Hystrix:服务容错组件,实现了断路器模式,为依赖服务的出错和延迟提供了容错能力;
- Feign:基于Ribbon和Hystrix的声明式服务调用组件;
- Zuul:API网关组件,对请求提供路由及过滤功能。
Spring Cloud Bus
用于传播集群状态变化的消息总线,使用轻量级消息代理链接分布式系统中的节点,可以用来动态刷新集群中的服务配置。Spring Cloud Consul
基于Hashicorp Consul的服务治理组件。Spring Cloud Security
安全工具包,对Zuul代理中的负载均衡OAuth2客户端及登录认证进行支持。Spring Cloud Sleuth
SpringCloud应用程序的分布式请求链路跟踪,支持使用Zipkin、HTrace和基于日志(例如ELK)的跟踪。Spring Cloud Stream
轻量级事件驱动微服务框架,可以使用简单的声明式模型来发送及接收消息,主要实现为Apache Kafka及RabbitMQ。Spring Cloud Task
用于快速构建短暂、有限数据处理任务的微服务框架,用于向应用中添加功能性和非功能性的特性。Spring Cloud Zookeeper
基于Apache Zookeeper的服务治理组件。Spring Cloud Gateway
API网关组件,对请求提供路由及过滤功能。Spring Cloud OpenFeign
基于Ribbon和Hystrix的声明式服务调用组件,可以动态创建基于Spring MVC注解的接口实现用于服务调用,在SpringCloud 2.0中已经取代Feign成为了一等公民。
Alibaba
https://spring.io/projects/spring-cloud-alibaba
通用配置
<properties>
<maven.compiler.source>8</maven.compiler.source>
<maven.compiler.target>8</maven.compiler.target>
<spring-cloud.version>Hoxton.SR9</spring-cloud.version>
<spring-boot.version>2.3.2.RELEASE</spring-boot.version>
<spring-cloud-alibaba.version>2.2.6.RELEASE</spring-cloud-alibaba.version>
</properties>
<dependencyManagement>
<dependencies>
<dependency>
<groupId>org.springframework.cloud</groupId>
<artifactId>spring-cloud-dependencies</artifactId>
<version>${spring-cloud.version}</version>
<type>pom</type>
<scope>import</scope>
</dependency>
<dependency>
<groupId>org.springframework.boot</groupId>
<artifactId>spring-boot-dependencies</artifactId>
<version>${spring-boot.version}</version>
<type>pom</type>
<scope>import</scope>
</dependency>
<dependency>
<groupId>com.alibaba.cloud</groupId>
<artifactId>spring-cloud-alibaba-dependencies</artifactId>
<version>${spring-cloud-alibaba.version}</version>
<type>pom</type>
<scope>import</scope>
</dependency>
<!-- https://mvnrepository.com/artifact/org.projectlombok/lombok -->
<dependency>
<groupId>org.projectlombok</groupId>
<artifactId>lombok</artifactId>
<version>1.18.20</version>
<scope>provided</scope>
</dependency>
</dependencies>
</dependencyManagement>