SpringCloud常用组件

Posted whymoney1000

tags:

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

spring cloud中有五大核心组件Eureka、Ribbon、Feign、Hystrix、Zuul,简单记录如下。

  • Eureka是微服务架构中的注册中心,专门负责服务的注册与发现。Eureka Client组件专门负责将服务的信息注册到Eureka Server中,而Eureka Server是一个注册中心,里面有一个注册表,保存了各服务所在的机器和端口号。各个服务启动时,Eureka Client都会将服务注册到Eureka Server,并且Eureka Client还可以反过来从Eureka Server拉取注册表,从而知道其他服务在哪。
  • Feign的关键机制是使用了动态代理。如果你对某个接口定义了@FeignClient注解,Feign就会针对这个接口创建一个动态代理;接着你要是调用那个接口,本质就是会调用Feign创建的动态代理;Feign的动态代理会根据你在接口上的@RequestMapping等注解,来动态构造出你要请求的服务的地址;针对这个地址,发起请求,解析相应;
  • Ribbon的作用是负载均衡,会帮你在每次请求时选择一台机器,均匀的把请求分发到各个机器上,默认使用Round Robin轮询算法;
  • Hystrix是隔离、熔断以及降级的一个框架。发起请求是通过Hystrix的线程池来走的,不同的服务走不同的线程池,实现了不同服务调用的隔离,避免了服务雪崩的问题;
  • Zuul也就是微服务网关。这个组件是负责网络路由的,一般微服务架构中都必然设计一个网关在里面,像androidios、pc前端、微信小程序、h5等,不用关心后端有几百个服务,就知道有一个网关,所有请求都往网关走,网关会根据请求中的一些特征,将请求转发给后端的各个服务。有一个网关之后,还有很多好处,比如做统一的降级、限流、认证授权、安全等等。

下面Spring Cloud的5个核心组件通过一张图串联起来:
技术图片

Ribbon和Feign以及Eureka紧密协作,完成工作的,具体如下:

    • 首先Ribbon会从Eureka Client里获取到对应的服务注册表,也就知道了所有的服务都部署在哪些机器上,在监听哪些端口号;
    • 然后Ribbon就可以使用默认的Round Robin算法,从中选择一台机器;
    • Feign就会针对这台机器,构造并发起请求

以上是关于SpringCloud常用组件的主要内容,如果未能解决你的问题,请参考以下文章

springCloud常用组件以及其作用

springCloud常用组件以及其作用

springCloud集成常用组件(持续更新)

springcloud与常用组件微量说明,部分组件已被最新的替代,这是netflix springcloud

结合业务场景讲解Spring Cloud常用组件(转)

Spring Cloud常用组件及各组件版本对应关系图