• Spring Cloud 综述


    1、Spring Cloud 是什么

            [百度百科]Spring Cloud是一系列框架的有序集合。它利用Spring Boot的开发便利性巧妙地简化了分布式系统基础设施的开发,如服务发现注册、配置中心、消息总线、负载均衡、断路器、数据监控等,都可以用 Spring Boot的开发风格做到一键启动和部署。Spring Cloud并没有重复制造轮子,它只是将目前各家公司开发的比较成熟、经得起实际考验的服务框架组合起来,通过Spring Boot风格进行再封装屏蔽掉了复杂的配置和实现原理,最终给开发者留出了⼀套简单易懂、易部署和易维护的分布式系统开发工具包。

    Spring Cloud是一系列框架的有序集合(Spring Cloud是一个规范)

    开发服务发现注册、配置中心、消息总线、负载均衡、断路器、数据监控等

    利用Spring Boot的开发便利性简化了微服务架构的开发(⾃动装配)

            这里,我们需要注意,Spring Cloud其实是⼀套规范,是⼀套⽤于构建微服务架构的规范,而不是一个可以拿来即用的框架(所谓规范就是应该有哪些功能组件,然后组件之间怎么配合,共同完成什么事情)。在这个规范之下第三方的Netflix公司开发了一些组件、Spring官方开发了一些框架/组件,包括第三方的阿里巴巴开发了⼀套框架/组件集合Spring Cloud Alibaba,这些才是Spring Cloud规范的实现。 

            Netflix搞了⼀套 简称SCN;

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

    2、Spring Cloud 解决什么问题

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

    3、Spring Cloud 架构

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

    3.1、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 Sleuth/Zipkin
    阿⾥巴巴 seata 分布式事务方案

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

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

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

    4、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 Boot的话,我们在使用Spring Cloud时,每⼀个组件的相关Jar包都需要我们自己导入配置以及需要开发人员考虑兼容性等各种情况。所以Spring Boot是我们快速把Spring Cloud微服务技术应用起来的一种方式。

    5、Spring Cloud 与 Spring Boot 的关系

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

  • 相关阅读:
    子监督学习的知识点总结
    leetcode 406. Queue Reconstruction by Height(按身高重建队列)
    1008 Elevator
    图论基础知识 并查集/例题
    基于VUE + Echarts 实现可视化数据大屏煤改电分析系统
    【附源码】计算机毕业设计SSM社区留守儿童帮扶系统
    代码随想录第38天 | ● 完全背包 ● 518. 零钱兑换 II ● 377. 组合总和 Ⅳ
    Python综合练习题
    jackson的@JsonIgnore注解和@JsonFormat注解混用导致不生效问题
    【web前端期末大作业】基于html关爱空巢老人网页设计与实现
  • 原文地址:https://blog.csdn.net/weixin_52851967/article/details/126367334