SpingCloud——Hystrix详解+面试题集合

一、Hystrix详解

1. Hystrix介绍

       在分布式系统中,每个服务都可能会调用很多其他服务,当链路上某个微服务的调用响应的时间过长或者不可用时,就会导致整个系统发生级联故障(雪崩效应)。

        Hystrix 可以让我们在分布式系统中对服务间的调用进行控制,加入一些调用延迟或者依赖故障的容错机制,保证一个服务出现故障时,不会导致整个系统出现雪崩效应,以提高分布式系统弹性。

2.服务降级

       服务出现故障时,给故障服务降级到事先准备好的故障处理结果,将此结果返回给服务消费者。

        例如:在分布式架构中,A服务调用B服务的时候,由于B服务宕机了,导致请求失败,那这个时候我们有几种方式来处理:

                1.返回一个备用的数据,比如“系统繁忙”的信息给到用户,这种就是属于降级
                2.发起重试,这就是容错
        降级实际上有很多的方案主要分两大类,主动降级和被动降级:

                1.主动降级:比如大促的时候关闭非核心服务。
                2.被动降级:熔断触发降级、请求超时触发降级、限流触发降级。

3.服务熔断 

      微服务调用链路中,如果某个目标服务调用比较慢或者大量的超时,这个时候如果触发熔断机制,则可以保证后续的请求不会继续发送到目标服务上,而是直接返回降级的逻辑并且快速释放资源。如果目标服务的情况恢复了,那么熔断机制又会动态进行关闭。

熔断状态 

熔断打开:熔断打开后,在此时间内不会对该服务进行调用,而是直接访问降级方法。通过设置熔断时间,当达到该时间后,会尝试恢复该服务。

熔断关闭:熔断关闭代表服务正常,不会干扰正常服务调用。

熔断半开:熔断半开时,请求可以访问服务,若请求正常访问,则熔断会关闭;若请请求不正常,继续熔断,调用降级方法。

4.触发方式

 (1)熔断触发降级

        对某个服务的调用在一定的时间内(默认10s),发起了超过一定次数请求(默认20次),失败率超过一定值(默认50%),该服务的断路器会打开。返回一个由开发者设定的fallback。

        熔断的恢复时间(熔断5s),从熔断开启到后续5s之内的请求,都不会发起到远程服务端。

@RestController
public class Controller {
    @HystrixCommand(commandProperties = {
            //是否启用熔断器
         
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值