微服务解决方案之Spring Cloud

(一)Spring Cloud基本介绍

Spring Cloud是Pivotal公司在2015年发布的一个项目,很多人可能不知道Pivotal公司,Spring就是Pivotal公司研发的。

业内比较主流的微服务解决方案主要包括:
Spring Cloud Netflix
Spring Cloud Alibaba

简单来说,Spring Cloud提供了一些可以让开发者快速构建微服务应用的工具,比如配置管理服务发现、熔断、智能路由等,这些服务可以在任何分布式环境下很好地工作。Spring Cloud主要致力于解决如下问题:

Distributed/versioned configuration 分布式及版化配置
Service registration and discovery  服务注册与发现
Routing  服务路由
Service-to-service calls  服务调用
Load balancing  负载均衡
Circuit Breakers  断路器
Global locks 全局锁
Leadership election and cluster state   Leader选举及集群状态
Distributed messageing 分布式消息

需要注意的是,Spring Cloud并不是Spring团队全新研发的框架,它只是把一些比较优秀的解决微服务架构中常见问题的开源框架基于Spring Cloud规范进行了整合,通过Spring Boot这个框架进行再次封装后屏蔽掉了复杂的配置,给开发者提供良好的开箱即用的微服务开发体验。不难看出,Spring Cloud其实就是一套规范,而Spring Cloud Netflix、 Spring Cloud Consul、Spring Cloud Alibaba才是Spring Cloud规范的实现

(二)Spring Cloud版本介绍

Spring Cloud是一套整合了各大公司开源技术的规范,而这些开源技术的版本发布是由各个公司来维护的,每个子项目都维护了自己的发布版本号,所以它不像传统意义上的版本命名,而是采用了伦敦地铁站的名字根据字母表的顺序结合对应版本的时间顺序来定义一个大版本,Spring Cloud以往的版本发布顺序排列如下:
在这里插入图片描述
Spring Cloud的每一个大版本通过BOM ( Bill of Materials )来管理每个子项目的版本清单,下图所示是Spring Cloud官网提供的各个子项目的版本清单,表头(Edgware.SR6、Greenwich.SR2)表示Spring Cloud的大版本号。表格中的内容是当前大版本号对应所有子项目的版本号。简单来说,如果我们引入Spring Cloud的版本是Edgware.SR6,那么依赖的Spring-Cloud-Aws的版本号为1.2.4.RELEASE,Spring-Cloud-Bus的版本号为1.3.4.RELEASE。细心的读者会发现Spring Cloud大版本号后面多了一个SR6/.SR2,Spring Cloud项目的发布内容积累到一个临界点或者解决一些严重的Bug后,会发布一个Service Release的版本,简称SRX,其中X是一个递增的数字。

在这里插入图片描述

值得注意的是,Spring Cloud中所有子项目都依赖Spring Boot框架,所以Spring Boot框架的版本号和Spring Cloud的版本号之间也存在依赖及兼容的关系。如图2-2所示,是Spring Cloud官方提供的版本依赖关系。Edgware和Dalston这两个版本可以构建在Spring Boot 1.5.x版本上,但是不能兼容Spring Boot 2.0.x。并且,从Finchley版本开始,Spring Boot版本必须在2.0.x之上,不支持Spring Boot 1.5.X

在这里插入图片描述

(三)Spring Cloud规范下的实现Spring Cloud Netflix

Spring Cloud生态下服务治理的解决方案主要有两个:Spring Cloud Netflix和Spring Cloud Alibaba。这两个解决方案分别是针对Netflix OSS及Alibaba的服务治理体系基于Spring Cloud规范做的整合,本书中主要基于Spring Cloud Alibaba生态进行详细的讲解。

Spring Cloud Netflix主要为微服务架构下的服务治理提供解决方案,包括以下组件:

在这里插入图片描述
说明:以下组件Netflix宣布进入维护模式,不在进行大的功能升级
在这里插入图片描述

(四)Spring Cloud规范下的实现Spring Cloud Alibaba

(1)技术框架

Spring Cloud Alibaba是阿里巴巴集团下的开源组件和云产品在Spring Cloud规范下的实现。2018年10月31日,Spring Cloud Alibaba正式入驻Spring Cloud官方孵化器,并发布了第一个预览版本。

Spring Cloud Alibaba主要为微服务开发提供一站式的解决方案,使开发者通过Spring Cloud编程模型轻松地解决微服务架构下的各类技术问题。以下是Spring Cloud Alibaba生态下的主要功能组件,这些组件包含开源组件和阿里云产品组件,云产品是需要付费使用的。

在这里插入图片描述

(2)优势分析

1、Alibaba的开源组件在没有织入Spring Cloud生态之前,已经在各大公司广泛应用,所以集成到Spring Cloud生态使得开发者能够很轻松地实现技术整合及迁移

2、Alibaba的开源组件在服务治理上和处理高并发的能力上有天然的优势,毕竟这些组件都经历过数次双11的考验,也在各大互联网公司大规模应用过。所以,相比Spring Cloud Netflix来说,Spring CloudAlibaba在服务治理这块的能力更适合于国内的技术场景,同时,Spring Cloud Alibaba在功能上不仅完全覆盖了Spring Cloud Netflix原生特性,而且还提供了更加稳定和成熟的实现,很看好SpringCloud Alibaba未来的发展。

(3)Spring Cloud Alibaba的版本

Spring Cloud Alibaba在2018年10月31号发布了第一个预览版本,0.2.0.RELEASE和0.1.0.RELEASE,其中0.1.0.RELEASE与Spring Boot 1.5.x兼容,0.2.0.RELEASE与Spring Boot 2.0.x兼容。由于Spring Cloud是基
于Spring Boot框架来集成的,而Spring Boot 1和Spring Boot 2在一些配置类和注解等方面存在很大的变更,所以在一段时间内如果做升级,还是会考虑兼容老的版本。

目前Spring Cloud Alibaba发布了两个毕业版本,最新的版本对应各个子项目的版本关系如图所示。
在这里插入图片描述

在这里插入图片描述

猜你喜欢

转载自blog.csdn.net/Octopus21/article/details/113789615
今日推荐