码迷,mamicode.com
首页 > 编程语言 > 详细

SpringCloud常用组件

时间:2019-07-25 09:15:32      阅读:124      评论:0      收藏:0      [点我收藏+]

标签:前端   就是   tps   负载   机制   process   http   记录   获取   

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也就是微服务网关。这个组件是负责网络路由的,一般微服务架构中都必然设计一个网关在里面,像android、ios、pc前端、微信小程序、h5等,不用关心后端有几百个服务,就知道有一个网关,所有请求都往网关走,网关会根据请求中的一些特征,将请求转发给后端的各个服务。有一个网关之后,还有很多好处,比如做统一的降级、限流、认证授权、安全等等。

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

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

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

SpringCloud常用组件

标签:前端   就是   tps   负载   机制   process   http   记录   获取   

原文地址:https://www.cnblogs.com/whymoney1000/p/11242087.html

(0)
(0)
   
举报
评论 一句话评论(0
登录后才能评论!
© 2014 mamicode.com 版权所有  联系我们:gaon5@hotmail.com
迷上了代码!