springcloud概述

小凯   |     |   框架   |   5分钟   |   126浏览  

单体架构存在的问题:
代码复用、代码冲突、扩容

概述:
Spring Cloud 是一套完整的微服务解决方案,基于 Spring Boot 框架,准确的说,它不是一个框架,而是一个大的容器,它将市面上较好的微服务框架集成进来,从而简化了开发者的代码量。
优点:
便于维护
集大成者,Spring Cloud 包含了微服务架构的方方面面。
约定优于配置,基于注解,没有配置文件。
轻量级组件,Spring Cloud 整合的组件大多比较轻量级,且都是各自领域的佼佼者。
开发简便,Spring Cloud 对各个组件进行了大量的封装,从而简化了开发。
开发灵活,Spring Cloud 的组件都是解耦的,开发人员可以灵活按需选择组件。
缺点:
项目结构复杂,每一个组件或者每一个服务都需要创建一个项目。
部署门槛高,项目部署需要配合 Docker 等容器技术进行集群部署,而要想深入了解 Docker,学习成本高。

五大组件:
(1)服务发现-- Netflix Eureka

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

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

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

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

     (2)  客户端负载均衡 -- Netflix Ribbon (feign)

    提供客户端的软件负载均衡算法。它基于Http和Tcp的客户端负载均衡,使得面向REST请求时变换为客户端的负载服务调用。

     (3) 熔断器 -- Netflix Hystrix

           作用:断路器,保护系统,控制故障范围。为了保证高可用,单个服务通常会集群部署。当网络或者其他原因导致单个服务出现问题,调用这个服务就会出现线程阻塞,此时如果大量请求进入,Servlet容器的线程资源就会消耗完毕,最终导致服务瘫痪。服务与服务之间的依赖,故障会传播,对整个微服务框架造成灾难性的严重后果,这个就是服务故障的“雪崩”效应。

    (4)服务网关--Netflix Zuul

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

          类型Nginx 和F5,可以实现反向代理。

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

      (5) 分布式配置 -- Spring Cloud Config

    作用:配置管理

          提供服务端和客户端,服务器存储后端的默认实现使用git,因此它轻松支持标签版本的配置环境。Config是静态配置的。

         如果需要动态配置,可以使用spring cloud bus进行动态配置更新。
如果你觉得文章对你有帮助,那就请作者喝杯咖啡吧☕
微信
支付宝
  条评论