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 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

图片.png

版本号含义

Spring Cloud 处于快速迭代状态,开发的不同阶段对应着不同的版本号,一个大版本是从 BUILD-SNAPSHOT 开始的,他表示快照版本,这个版本的代码不是固定的,而是处于变化之中。
等到开发到了一定的阶段比如50%,就会发布一个MX 版本,他表示里程碑版。比如M1表示第一个里程碑版
经过数个里程碑版后,已经开发的差不多了,这是会发布候选发布版(RCX),该版本为正式版提供一个发行观察期,主要修复一些bug,RC1 表示第一个候选发布版
在经过一个或多个候选发布版后,正式版(RELEASE) 就发布了
正式版发布之后,如果有被发现了错误和bug,修复之后就会发布SRX版,他也叫正式版。
image.png
在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

通用配置

  1. <properties>
  2. <maven.compiler.source>8</maven.compiler.source>
  3. <maven.compiler.target>8</maven.compiler.target>
  4. <spring-cloud.version>Hoxton.SR9</spring-cloud.version>
  5. <spring-boot.version>2.3.2.RELEASE</spring-boot.version>
  6. <spring-cloud-alibaba.version>2.2.6.RELEASE</spring-cloud-alibaba.version>
  7. </properties>
  8. <dependencyManagement>
  9. <dependencies>
  10. <dependency>
  11. <groupId>org.springframework.cloud</groupId>
  12. <artifactId>spring-cloud-dependencies</artifactId>
  13. <version>${spring-cloud.version}</version>
  14. <type>pom</type>
  15. <scope>import</scope>
  16. </dependency>
  17. <dependency>
  18. <groupId>org.springframework.boot</groupId>
  19. <artifactId>spring-boot-dependencies</artifactId>
  20. <version>${spring-boot.version}</version>
  21. <type>pom</type>
  22. <scope>import</scope>
  23. </dependency>
  24. <dependency>
  25. <groupId>com.alibaba.cloud</groupId>
  26. <artifactId>spring-cloud-alibaba-dependencies</artifactId>
  27. <version>${spring-cloud-alibaba.version}</version>
  28. <type>pom</type>
  29. <scope>import</scope>
  30. </dependency>
  31. <!-- https://mvnrepository.com/artifact/org.projectlombok/lombok -->
  32. <dependency>
  33. <groupId>org.projectlombok</groupId>
  34. <artifactId>lombok</artifactId>
  35. <version>1.18.20</version>
  36. <scope>provided</scope>
  37. </dependency>
  38. </dependencies>
  39. </dependencyManagement>