• 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来存储配置,可以支持客户端配置的刷新及加密、解密操作
  • 相关阅读:
    打开Intellij Idea 2020.1 提示 cannot load a jdk class: com.sun.jdi.Field
    win10触摸板设置为连接鼠标不打开后就自动关闭
    git配置账号
    HTTP请求中的Form Data与Request Payload的区别
    VUE—axios自定义请求配置—3、transformRequest在向服务器发送前,修改请求数据(图文详情)
    在Sass中,我们可以使用“@for”来实现循环操作
    vue项目引入背景图报Module not found: Error: Can't resolve './src/assets/theme/logo_blue.png' in'xxx'错误
    Importing code style from ESLint
    ESLint fix自动修复所有格式问题
    【T07】不要低估tcp的性能
  • 原文地址:https://www.cnblogs.com/qq1141100952com/p/15096714.html
Copyright © 2020-2023  润新知