方易明:SpringCloud架构及版本介绍

Spring Cloud学习记录


一、spring的微服务架构图

Spring官方的架构图:


Spring官方微服务架构图

分为以下几块组件:

  1. API网关

    对外(浏览器、客户端、移动端等)暴露接口,提供路由、过滤、身份认证、负载均衡等功能

  2. 服务注册与发现

    将微服务注册到注册中心,并可以被其他微服务发现及调用。(通常同一微服务都是部署多个的,服务调用组件都会提供负载均衡的功能)

  3. 配置中心

    统一的配置中心(通常会部署成分布式),能够被各个服务读取到,提供配置文件的版本管理、权限控制的功能

  4. 分布式追踪

    当微服务之间的依赖关系变得很复杂时(A调用了B,B调用了C,C又调用了D...),就需要服务链路追踪组件来分析调用链的复杂度

  5. 微服务

在架构图中没有体现的:

  1. 断路器

    在微服务中,某个服务调用了多个其他服务是很常见的,当其中某个服务由于网络或自身原因出现问题,调用这个服务时就会出现阻塞,若有大量请求进来,容器的线程资源会被消耗完,从而导致服务不可用。因为服务和服务之间有依赖性,故障会传播,这就是服务故障的“雪崩”效应。

    引入断路器后,在对某个服务的调用失败次数达到一个阈值时,断路器会被打开,会快速返回一个固定值。避免连锁故障

  2. 消息总线

    使用轻量级的消息代理(一般是消息队列)用于微服务之间通讯。(SpringCloud可在各个服务之间传递事件)

  3. 分布式事务

    当程序单机运行,数据库能通过事务为我们保证数据的一致性。但是当程序分布式运行时,我们需要在分布式环境下保持数据一致性,此时就需要分布式事务组件来实现这个功能

二、SpringCloud各组件的开源实现

SpringCloud是以微服务为核心的分布式系统的一个构建标准,有如下各个实现,其中的多个组件可以实现无缝切换

SpringCloud各个实现

三、SpringCloud的版本问题

SpringCloud的版本以伦敦地铁站名字演进,从A开始,目前最新版本是Hoxton.SR8,官方发布的正式版本号都是以RELEASE或者SRX结尾(X表示一个数字)。这两种版本号都是可以正式用于生产环境的,当一个版本的SpringCloud项目发布的内容积累到一定程度或者一个严重bug解决可用后,就会发布一个“service release”版本,也就是SRX版本。官方会在某个SRX版本上标注GA(General Availability),表示官方推荐广泛使用。


SpringCloud官方版本图

SpringCloud版本

  • Dalston

    Spring Boot版本:1.5.x

  • Edgware

    Spring Boot版本:1.5.x

  • Finchley

    Spring Boot版本:2.0.x

  • Greenwich

    Spring Boot版本:2.1.x

  • Hoxton

    Spring Boot版本:2.2.x,2.3.x(SR5起)

SpringCloudAlibaba版本

SpringCloudAlibaba的版本号与SpringBoot一致

  • 1.5.x版本适用于Spring Boot 1.5.x
  • 2.0.x版本适用于Spring Boot 2.0.x
  • 2.1.x版本适用于Spring Boot 2.1.x
  • 2.2.x版本适用于Spring Boot 2.2.x

四、学习资料推荐

方志朋的专栏 (有完整版的学习路线,涵盖了SpringCloud的各个组件)

SpringCloudAlibaba Github主页

五、参考资料

进击的Spring Cloud Alibaba

Spring Cloud

聊聊Spring Cloud版本的那些事儿

SpringCloudAlibaba Github主页

©著作权归作者所有,转载或内容合作请联系作者
平台声明:文章内容(如有图片或视频亦包括在内)由作者上传并发布,文章内容仅代表作者本人观点,简书系信息发布平台,仅提供信息存储服务。