SpringCloud 五大组件基础介绍

Posted 奔跑的路奇

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了SpringCloud 五大组件基础介绍相关的知识,希望对你有一定的参考价值。

Spring Cloud 五大组件介绍

1 Eureka注册中心

一个网约车的例子:滴滴这样的网约车平台出现了,所有想载客的私家车全部到滴滴注册,记录你的车型(服务类型),身份信息 (联系方式)。这样提供服务的私家车,在滴滴那里都能找到,一目了然。
Eureka做什么?
Eureka就好比是滴滴,负责管理、记录服务提供者的信息。服务调用者无需自己寻找服务,而是把自己的需求告诉 Eureka,然后Eureka会把符合你需求的服务告诉你。
同时,服务提供方与Eureka之间通过 “心跳” 机制进行监控,当某个服务提供方出现问题,Eureka自然会把它从服 务列表中剔除。

原理图:
在这里插入图片描述

  • Eureka:就是服务注册中心(可以是一个集群),对外暴露自己的地址
  • 提供者:启动后向Eureka注册自己信息(地址,提供什么服务)
  • 消费者:向Eureka订阅服务,Eureka会将对应服务的所有提供者地址列表发送给消费者,并且定期更新
  • 心跳(续约):提供者定期通过HTTP方式向Eureka刷新自己的状态

2 负载均衡Ribbon

在实际开发中,服务提供者会有多个,那么服务消费者应该访问哪一个呢?
Eureka中已经帮我们集成了负载均衡组件:Ribbon。

什么是Ribbon:

  • Ribbon是Netfix发布的负载均衡器,它有助于控制HTTP和TCP客户端的行为。为Ribbon配置服务提供者地址列表后,就可以基于某种负载均衡算法,自动地帮助服务消费者去请求。 Ribbon默认的负载均衡策略是简单的轮询。
  • ribbon是负载均衡器,是基于RestTemplate ,它赋予了RestTemplate 负载均衡的能力

3 Hystrix

  • 在分布式架构中,当某个服务单元发生故障之后,通过断路器的故障监控,向调用方返回一个错误响应。这样就不会使得线程因调用故障服务被长时间占用不释放,防止出现级联失败。
  • Hystrix具备服务降级、服务熔断、线程和信号隔离、请求缓存、请求合并以及服务监控等强大功能。
  • Hystix是Netflix开源的一个延迟和容错库,用于隔离访问远程服务,防止出现级联失败。

4 Feign

  • 首先,对某个接口定义了@FeginClient注解,Fegin就会针对这个接口创建一个动态代理
  • 接口中的定义方法,完全采用SpringMVC的注解,Feign会根据注解帮我们生成URL,并访问获取结果
  • @FeignClient ,声明这是一个Feign客户端,同时通过 value 属性指定服务名称

5 Spring Cloud Gateway网关

  • Spring Cloud Gateway组件的核心是一系列的过滤器,通过这些过滤器可以将客户端发送的请求转发(路由)到对 应的微服务。
  • Spring Cloud Gateway是加在整个微服务最前沿的防火墙和代理器,隐藏微服务结点IP端口信息, 从而加强安全保护。
  • Spring Cloud Gateway本身也是一个微服务,需要注册到Eureka服务注册中心。
  • 网关的核心功能是:过滤和路由

加入网关后的架构图:
在这里插入图片描述

  • 服务消费者的请求访问统一要经过网关进入,由网关请求相应的服务。

最后,如果有问题,希望指正,一起进步。

以上是关于SpringCloud 五大组件基础介绍的主要内容,如果未能解决你的问题,请参考以下文章

SpringCloud微服务组件介绍

Springcloud五大组件

SpringCloud的五大组件详解

springCloud五大核心组件(转载)

SpringCloud五大组件是什么

SpringCloud五大组件