美文网首页读书
【Java进阶营】Springcloud是什么?核心总结

【Java进阶营】Springcloud是什么?核心总结

作者: 南门屋 | 来源:发表于2022-04-25 17:32 被阅读0次
    image.png

    Spring Cloud 是一套 完整的微服务解决方案 ,基于 Spring Boot 框架,准确的说,它不是一个框架,而是一个大的容器,它将市面上较好的微服务框架集成进来,从而简化了开发者的代码量。

    Spring Cloud 是一系列框架的有序集合,它利用 Spring Boot 的开发便利性简化了分布式系统的开发,比如服务发现、服务网关、服务路由、链路追踪等。Spring Cloud 并不重复造轮子,而是将市面上开发得比较好的模块集成进去,进行封装,从而减少了各模块的开发成本。换句话说:Spring Cloud 提供了构建分布式系统所需的“全家桶”。

    Spring Cloud 优缺点

    其主要优点有:

    1. 集大成者,Spring Cloud 包含了微服务架构的方方面面。

    2. 约定优于配置,基于注解,没有配置文件。

    3. 轻量级组件,Spring Cloud 整合的组件大多比较轻量级,且都是各自领域的佼佼者。

    4. 开发简便,Spring Cloud 对各个组件进行了大量的封装,从而简化了开发。

    5. 开发灵活,Spring Cloud 的组件都是解耦的,开发人员可以灵活按需选择组件。

    缺点:

    1. 项目结构复杂,每一个组件或者每一个服务都需要创建一个项目。

    2. 部署门槛高,项目部署需要配合 Docker 等容器技术进行集群部署,而要想深入了解 Docker,学习成本高。

    Spring Cloud 和 Dubbo 对比

    Dubbo 只是实现了服务治理,而 Spring Cloud 实现了微服务架构的方方面面,服务治理只是其中的一个方面。下面通过一张图对其进行比较:

    image.png

    可以看出,Spring Cloud 比较全面,而 Dubbo 由于只实现了服务治理,需要集成其他模块,需要单独引入,增加了学习成本和集成成本。

    五大常用组件

    • 服务发现——Netflix Eureka

    • 客服端负载均衡——Netflix Ribbon

    • 断路器——Netflix Hystrix

    • 服务网关——Netflix Zuul

    • 分布式配置——Spring Cloud Config

    Eureka

    image.png

    作用:实现服务治理(服务注册与发现)

    简介:Spring Cloud Eureka是Spring Cloud Netflix项目下的服务治理模块。

    由两个组件组成:Eureka服务端和Eureka客户端。

    Eureka服务端用作服务 注册中心 。支持集群部署。

    Eureka客户端是一个java客户端,用来处理服务注册与发现。

    在应用启动时,Eureka客户端向服务端注册自己的服务信息,同时将服务端的服务信息缓存到本地。客户端会和服务端周期性的进行心跳交互,以更新服务租约和服务信息。

    Ribbon

    image.png

    作用:Ribbon,主要提供客户侧的软件 负载均衡 算法。

    简介:Spring Cloud Ribbon是一个基于HTTP和TCP的客户端负载均衡工具,它基于Netflix Ribbon实现。通过Spring Cloud的封装,可以让我们轻松地将面向服务的REST模版请求自动转换成客户端负载均衡的服务调用。在此我向大家推荐一个架构学习交流圈。交流学习指导伪鑫:1253431195(里面有大量的面试题及答案)里面会分享一些资深架构师录制的视频录像:有Spring,MyBatis,Netty源码分析,高并发、高性能、分布式、微服务架构的原理,JVM性能优化、分布式架构等这些成为架构师必备的知识体系。还能领取免费的学习资源,目前受益良多

    注意看上图,关键点就是将外界的rest调用,根据负载均衡策略转换为微服务调用。Ribbon有比较多的负载均衡策略,以后专门讲解。

    Hystrix

    image.png

    作用: 断路器 ,保护系统,控制故障范围。

    简介:为了保证其高可用,单个服务通常会集群部署。由于网络原因或者自身的原因,服务并不能保证100%可用,如果单个服务出现问题,调用这个服务就会出现线程阻塞,此时若有大量的请求涌入,Servlet容器的线程资源会被消耗完毕,导致服务瘫痪。服务与服务之间的依赖性,故障会传播,会对整个微服务系统造成灾难性的严重后果,这就是服务故障的“雪崩”效应。

    Zuul

    image.png

    作用:api 网关 ,路由,负载均衡等多种作用

    简介:类似nginx,反向代理的功能,不过netflix自己增加了一些配合其他组件的特性。

    在微服务架构中,后端服务往往不直接开放给调用端,而是通过一个API网关根据请求的url,路由到相应的服务。当添加API网关后,在第三方调用端和服务提供方之间就创建了一面墙,这面墙直接与调用方通信进行权限控制,后将请求均衡分发给后台服务端。

    Config

    image.png

    作用: 配置 管理

    简介:SpringCloud Config提供服务器端和客户端。服务器存储后端的默认实现使用git,因此它轻松支持标签版本的配置环境,以及可以访问用于管理内容的各种工具。

    这个还是静态的,得配合Spring Cloud Bus实现动态的配置更新。

    相关文章

      网友评论

        本文标题:【Java进阶营】Springcloud是什么?核心总结

        本文链接:https://www.haomeiwen.com/subject/xkwaertx.html