Spring Cloud是什么

Spring Cloud是一系列框架的有序集合,是一套用于构建微服务架构的规范,而不是一个可以拿来即用的框架(所谓规范就是应该有哪些功能组件,然后组件之间怎么配合,共同完成什么事情)。它利用Spring Boot的开发便利性简化了微服务架构的开发(自动装配),用于开发服务发现注册、配置中心、消息总线、负载均衡、断路器、数据监控等。
在这个规范之下第三方的Netflix公司开发了一些组件、Spring官方开发了一些框架/组件,包括第三方的阿里巴巴开发了一套框架/组件集合Spring Cloud Alibaba,这些才是Spring Cloud规范的实现。

  • Netflix搞了一套,简称SCN
  • Spring Cloud吸收了Netflix公司的产品基础之上自己也搞了几个组件
  • 阿里巴巴在之前的基础上搞出了一堆微服务组件,Spring Cloud Alibaba(SCA)

Spring Cloud解决什么问题

Spring Cloud规范及实现意图要解决的问题其实就是微服务架构实施过程中存在的一些问题,比如微服务架构中的服务注册发现问题、网络问题(比如熔断场景)、统一认证安全授权问题、负载均衡问题、链路追踪等问题。

Spring Cloud架构

如前所述,Spring Cloud是一个微服务相关规范,这个规范意图为搭建微服务架构提供一站式服务,采用组件(框架)化机制定义一系列组件,各类组件针对性的处理微服务中的特定问题,这些组件共同来构成Spring Cloud微服务技术栈

Spring Cloud核心组件

Spring Cloud生态圈中的组件,按照发展可以分为第一代Spring Cloud组件和第二代 Spring Cloud组件。

第一代 Spring Cloud(Netflix,SCN)第二代 Spring Cloud(主要就是Spring Cloud Alibaba,SCA)
注册中心Netflix Eureka阿里巴巴Nacos 客户端负载均衡Netflix Ribbon阿里巴巴Dubbo LB、Spring Cloud Loadbalancer
熔断器Netflix Hystrix阿里巴巴Sentinel
网关Netflix Zuul(性能一般,未来将退出Spring Cloud 生态圈)官方Spring Cloud Gateway
配置中心官方Spring Cloud Config阿里巴巴Nacos、携程Apollo
服务调用Netflix Feign阿里巴巴Dubbo RPC
消息驱动官方Spring Cloud Stream官方Spring Cloud Stream
链路追踪官方Spring Cloud Sleuth/Zipkin官方Spring Cloud Sleuth/Zipkin
阿里巴巴seata分布式事务方案

Spring Cloud体系结构(组件协同工作机制)

image.png
Spring Cloud中的各组件协同工作,才能够支持一个完整的微服务架构。比如:

  • 注册中心负责服务的注册与发现,很好将各服务连接起来
  • API网关负责转发所有外来的请求
  • 断路器负责监控服务之间的调用情况,连续多次失败进行熔断保护。
  • 配置中心提供了统一的配置信息管理服务,可以实时的通知各个服务获取最新的配置信息。

Spring Cloud与Dubbo对比

Dubbo是阿里巴巴公司开源的一个高性能优秀的服务框架,基于RPC调用,而目前使用率较高的Spring Cloud Netflix来说,它是基于HTTP的,所以效率上没有Dubbo高,但问题在于Dubbo体系的组件不全,不能够提供一站式解决方案,比如服务注册与发现需要借助于Zookeeper等实现,而Spring Cloud Netflix则是真正的提供了一站式服务化解决方案,且有Spring大家族背景。
前些年,Dubbo使用率高于SpringCloud,但目前Spring Cloud在服务化/微服务解决方案中已经有了非常好的发展趋势。

Spring Cloud与Spring Boot的关系

Spring Cloud只是利用了Spring Boot的特点,让我们能够快速的实现微服务组件开发,否则不使用Spring Boot的话,我们在使用Spring Cloud时,每一个组件的相关jar包都需要我们自己导入配置以及需要开发人员考虑兼容性等各种情况。所以Spring Boot是我们快速把Spring Cloud微服务技术应用起来的一种方式。

标签: Spring Cloud

评论已关闭