SpringCloud五大组件

  springcloud是springboot的超集,是微服务的全家桶。通过springcloud可以实现中小企业的快速部署。

  springcloud项目是多个独立的子项目集合而成,所以它的版本管理比较特殊,版本名使用字母排序。

        如果使用springboot 2.0以上版本,我们应该使用springcloud F版本。

        接着介绍下它的常用五个组件:

       (1)服务发现-- Netflix Eureka

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

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

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

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

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

    提供客户端的软件负载均衡算法。它基于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进行动态配置更新。

参考:https://baijiahao.baidu.com/s?id=1621651597363566701&wfr=spider&for=pc

猜你喜欢

转载自www.cnblogs.com/wangyu19900123/p/12522921.html