一、Spring Cloud 简介

  1. Spring Cloud是一个微服务框架,相比Dubbo等RPC框架, Spring Cloud提供的全套的分布式系统解决方案。
  2. Spring Cloud对微服务基础框架Netflix的多个开源组件进行了封装,同时又实现了和云端平台以及和Spring Boot开发框架的集成。
  3. Spring Cloud为微服务架构开发涉及的配置管理,服务治理,熔断机制,智能路由,微代理,控制总线,一次性token,全局一致性锁,leader选举,分布式session,集群状态管理等操作提供了一种简单的开发方式。
  4. Spring Cloud 为开发者提供了快速构建分布式系统的工具,开发者可以快速的启动服务或构建应用、同时能够快速和云平台资源进行对接。
  5. 尽管Spring Cloud 带有“Cloud”的字样,但它并不是云计算解决方案,而是在Spring Boot 基础上构建的,用于快速构建分布式系统的通用模式的工具集。

二、Spring Cloud 特点

  • 约定优于配置。
  • 适用于各种环境。开发、部署在PC Server 或各种云环境(例如阿里云、AWS等)均可。
  • 隐藏了组件的复杂性,并提供声明式、无xml的配置方式。
  • 开箱即用,快速启动。
  • 轻量级的组件。Spring Cloud 整合的组件大多比较轻量级。例如 Eureka、Zuul等等,都是各自领域轻量级的实现。
  • 组件丰富,功能齐全。Spring Cloud 为微服务架构提供了非常完整的支持。例如,配置管理、服务发现、断路器、微服务网关等。
  • 选型中立、丰富。例如,Spring Cloud 支持 Eureka、Zookeeper 或 Consul 实现服务发现。
  • 灵活。Spring Cloud 的组成部分是解耦的,开发人员可以按需灵活挑选技术选型。

三、Spring Cloud 版本

1、版本简介

大多数 Spring 项目都是以 “主版本号.次版本号.增量版本号.里程碑版本号” 的形式命名版本号的。例如 Spring Framework 稳定版本 4.3.5.RELEASE、里程碑版本 5.0.0.M4等。其中,主版本号表示醒目的重大重构;此版本号表示新特性的添加和变化;增量版本号一般表示 Bug 修复;里程碑版本号表示某版本号的里程碑。

然而,Spring Cloud 并未使用这种方式管理版本,下面来详细探讨下 Spring Cloud 的版本。

因此每个 Spring Cloud 版本,包含着多个不同版本的子项目,为了管理每个版本的子项目清单,避免 Spring Cloud 版本号与其子项目版本号混淆,没有采用版本号方式,而是采用命名方式。

这些版本的名字采用了伦敦地铁站的名字,根据字母表顺序来对应版本时间顺序,如:Angel.SR6,Brixton.SR5,Brixton.SR7,Camden.M1.

2、子项目一览

理解 Spring Cloud 的版本后,来看一下各版本 Spring Cloud 包含的子项目及版本,如下图:

Cloud微服务架构实战派 Spring spring cloud微服务架构开发_版本号

从中不难发现,Angel 版本包含的子项目相对较少;Brixton、Camden 则提供了更多的组件。相信随着项目的迭代,Spring Cloud 会提供更多的组件与更丰富的特性,从而让开发更简单、快速。

3、Spring Cloud/Spring Boot 版本兼容性

  • Angel 版本基于 Spring Boot 1.2.x 构建,在一些场景下,与 Spring Boot 1.3.x 及以上版本不兼容。
  • Brixton 版本基于 Spring Boot 1.3.x 构建,也可以使用 1.4.x 进行测试,与 Spring Boot 1.2.x 不兼容。
  • Camden版本基于 Spring Boot 1.4.x 构建,也可以使用 1.5.x 进行测试。