springcloud 学习笔记(Spring Cloud 综述)

Spring Cloud 综述

Spring Cloud 是什么

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

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

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

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

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 ( 选举与集群状态管理)

  • Distributed messaging (分布式消息传递平台)

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 分布式事务方案
Spring Cloud 体系结构(组件协同工作机制)
7217bffea15e1eadd6a8ee072db8f50.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 核心组件

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

推荐阅读更多精彩内容