springCloud组件详细解析

1 springcloud有哪些组件?

  •  Eureka 服务注册中心
  •  Ribbon 负载均衡
  •  Zuul 网关
  •  Fegin 客户端Web
  •  Hsytri 熔断器
  •  Bus 消息总线
  •  Config 统一配置中心

2 什么是自我保护模式

 springCould的服务注册中心会监控微服务的心跳。如果检测到心跳,那么这个时候服务注册中心进入自我保护模式。等待到微服务恢复心跳,自动退出自我保护模式。

3、Eureka和zookeeper有什么区别

  Eureka:

  •    服务某一节点挂点后无需从新选举。
  •    保证AP模式。

 Zoomkeeper:

  •    服务某一节点挂点后,需要重新选举(具体怎么选举,自行百度),并且期间服务瘫痪不可用。
  •    保证CP模式

注意:

C:一致性。

A:可用性

P:分区容错性

4、discoverclient有什么作用?

  •    discoverclient根据服务名称从服务注册中心获取服务的信息。
  •    其中discoverClient也是Ribbon实现负载均衡的底层原理实现方法。

5 zuul什么是网关?

  zuul网关是统一接收、处理微服务收到的请求,转发到具体的服务


6 zuul的作用?

 统一管理微服务请求、权限控制、负载均衡、路由转发、监控等作用。


7 zuul和过滤器的区别?

  •   zuul:统一管理微服务的请求,权限控制、负载均衡、路由转发等作用。
  •   过滤器:针对于单服务而言拦截的服务请求等。


8、zuul和nginx的区别

  •    zuul:使用java语言编写,作用springCloud的微服务网关,实现负载均衡等。
  •    nginx:使用C语言编写,实现客户端的请求进行反向代理,请求转发、负载均衡。


9 zuulFilter的常用方法?

  •   run:拦截器的具体实现逻辑。
  •   shouldFilter:过滤器是否有效。
  •   filterOrder:过滤器的执行顺序。
  •   filterType:过滤器拦截位置。

10 zuul如何实现动态路由?

  利用path拦截请求,再根据服务的id(ServerId)到服务注册中心查找服务转发列表。


11 zuul网关如何搭建集群?

   使用Nginx的UpStream设置Zuul集群-----》通过Nginx的location拦截请并转发到upstream。zuul的默认负载均衡机制是轮循机制。

12 ribbon和nginx的区别?

  •    Nginx:拦截客户端的请求,并且通过反向代理,实现负载均衡。其负载均衡通过upstream配置进行转发。
  •    Ribbon:Ribbon是客户端负载均衡,从注册中心读取目标服务器信息,然后客户端采用轮询策略对服务直接访问,全程在客户端操作。

13 ribbon底层原理?--discoverclient

     底层原理是通过discoverClient从服务注册中心读,通过服务id(serverId)找到目标服务信息,对请求接口进行计数。再通过取模(%),达到负载均衡的轮循机制。(默认负载均衡是轮循)

14 Hystri断路器是什么?

   Hystri断路器就是针对微服务出现问题,有效的防止引起其他微服务的雪崩现象的一种微服务spring cloud技术。

  
15 Hystri防止服务雪崩的方式?

  •    服务降级:重写HysteiCommand的getFallback方法,当执行Hystri的run或construct方法出错,执行的getFallback方法。
  •    服务容错:在服务降级的基础上更具体的一种方式。在一定时间内计算请求失败数量(requestVolumeThreshold)或者错误率达到设定的阈值,直接调用fallBack方法。
  •    服务隔离:服务隔离就是Hystrix为隔离的服务开启一个独立的线程池,这样在高并发的情况下不会影响其他服务。服务隔离有线程池和信号量两种实现方式,一般使用线程池方式。
  •    服务监控:服务隔离就是Hystrix为隔离的服务开启一个独立的线程池,这样在高并发的情况下不会影响其他服务。服务隔离有线程池和信号量两种实现方式,一般使用线程池方式。

15 谈谈Hystri服务降级,熔断,隔离,监控?

    如上。

16 Hystri服务降级底层实现原理?

     重写HystriCommand的getFallback方法,当执行Hystri的run或construct方法出错,执行的getFallback方法


17 Hystri的服务熔断底层原理?

     是服务降级的基础上更直接的保护方法。当在一定时间范围内,请求达到一定值(设定的requestVolumnThroseld值)或发生的错误率 达到设定的值,直接走fallback方法。


18 服务隔离是使用线程池来实现的?

19 ribbon和fegin的区别?(springcloud调用接口的两种方式)

    Ribbon:需要自行实现http的编码。

    Fegin:无需实现http编码,只需要在接口上添加@Fegin注解,和在抽象方法上加注解@Post或者@Get请求方式即可。


20 spring clous bus是什么?21 springcloud config是什么?server,client两个部分。

   spring cloud bus:服务消息总线。用来扩展配置spring boot的应用程序配置文件,也可以用来是实现应用之间的通信,但是必须通过MQ来搭配实现。

   spring cloud config:分为Config Server和Config Client两部分。Config Server负责读取配置文件,并且暴露Http API接口,Config Client通过调用Config Server的接口来读取配置文件

  •     Config能够管理所有微服务的配置文件。
  •     集中配置管理工具,分布式系统中统一的外部配置管理,默认使用Git来存储配置,可以支持客户端配置的刷新及加密、解密操作
原文地址:https://www.cnblogs.com/qq1141100952com/p/15096714.html