面试那些事!——Spring cloud

Spring cloud 五大神兽:

1.Eurekar:

1.Eureka是Netflix 开源的基于 REST 的服务治理解决方案。

他被spring cloud集成了==>spring cloud Eureka。

2.Spring cloud Eureka 分为
    Eureka sever  :注册中心
    Eureclint    :所有要注册的微服务都通过它来连接到注册中心,完成注册。

3.Eureka的自我保护机制

    默认情况下,Eureka Server在一定时间内没有接收到某个微服务的心跳,Eureka Server就会注销该实例(默认90秒,可以通过参数自行配置)。但是某种原因服务是好的,但是被Eureka Server注销了,就会出现不好的情况。
    所以为了防止不好的情况,Eureka Server采用了自我保护模式。即当服务失联后,会继续保存该服务的注册信息-不会分配请求。而当网络故障恢复后,该服务就会退出自我保护模式,重新分配请求。
    可以通过参数设定:
    eureka.server.enable-self-preservation= false 不开启。

4.Eureka的CAP性质
    Eureka只保证AP,zookeeper保证cp。
    CAP(一致性,可用性,分区容忍性)。

2.Zuul:

1.什么是Zuul

    Zuul 是 Netflix 提供的一个开源的 API 网关服务器,是客户端和网站后端所有请求的中间层,对外开放一个 API,将所有请求导入统一的入口,屏蔽了服务端的具体实现逻辑,Zuul 可以实现反向代理的功能,在网关内部实现动态路由、身份认证、IP 过滤、数据监控等。
    
    Spring cloud 集成了Zuul实现服务网关,本质上是一个web servlet应用。

2.zuul的工作原理

    过滤器机制:

    zuul的核心是一系列的filters, 其作用可以类比Servlet框架的Filter.

    Zuul提供了一个框架,可以对过滤器进行动态的加载,编译,运行.Zuul的过滤器之间没有直接的相互通信,他们之间通过一个RequestContext的静态类来进行数据传递的。RequestContext类中有ThreadLocal变量来记录每个Request所需要传递的数据。



    

3.feign:

什么是Feign

1)与 Ribbon 一样,Feign 也是由 Netflix 提供的,Feign 是一个声明式、模版化的 Web Service 客户端,它简化了开发者编写 Web 服务客户端的操作,开发者可以通过简单的接口和注解来调用 HTTP API,Spring Cloud Feign,它整合了 Ribbon 和 Hystrix,具有可插拔、基于注解、负载均衡、服务熔断等一系列便捷功能。

2)相比较于 Ribbon + RestTemplate 的方式,Feign 大大简化了代码的开发,Feign 支持多种注解,包括 Feign 注解、JAX-RS 注解、Spring MVC 注解等,Spring Cloud 对 Feing 进行了优化,整合了 Ribbon 和 Eureka,从而让 Feign 的使用更加方便。Feign可以直接通过接口来调用服务。

4.Ribbon:

什么是Ribbon负载均衡:

1.Ribbon 是 Netflix 发布的负载均衡器,Spring Cloud Ribbon 是基于 Netflix Ribbon 实现的,是一个用于对 HTTP 请求进行控制的负载均衡客户端。

2.在注册中心对 Ribbon 进行注册之后,Ribbon 就可以基于某种负载均衡算法,如轮询、随机、加权轮询、加权随机等自动帮助服务消费者调用接口,开发者也可以根据具体需求自定义 Ribbon 负载均衡算法。实际开发中,Spring Cloud Ribbon 需要结合 Spring Cloud Eureka 来使用,Eureka Server 提供所有可以调用的服务提供者列表,Ribbon 基于特定的负载均衡算法从这些服务提供者中选择要调用的具体实例。

3.Ribbon是通过@LoadBalanced注解 加上 RestTemplate 实现调用服务的。

5.Hystri:

什么是Hystri熔断机制

1)在不改变各个微服务调用关系的前提下,针对错误情况进行预先处理。

2)设计原则:
    1、服务隔离机制    :隔离服务之间相互影响

    2、服务降级机制   :接口调用失败就调用本地的方法返回一个空

    3、熔断机制        :接口调用失败就会进入调用接口提前定义好的一个熔断的方法,返回错误信息

    4、提供实时的监控和报警功能   :在服务发生调用时,会将每秒请求数、成功请求数等运行指标记录下来

    5、提供实时的配置修改功能 

3)一般使用服务降级和熔断机制:
    服务降级:当客户端请求服务器端的时候,防止客户端一直等待,不会处理业务逻辑代码,直接返回一个友好的提示给客户端。

    服务熔断是在服务降级的基础上更直接的一种保护方式,当在一个统计时间范围内的请求失败数量达到设定值(requestVolumeThreshold)或当前的请求错误率达到设定的错误率阈值(errorThresholdPercentage)时开启断路,之后的请求直接走fallback方法,在设定时间(sleepWindowInMilliseconds)后尝试恢复。

 

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值