2、hystrix原理

hystrix熔断机制

  1、隔离机制

    线程隔离:

                Hystrix在用户请求和服务之间加入了线程池。

                Hystrix为每个依赖调用分配一个小的线程池,如果线程池已满调用将被立即拒绝,默认不采用排队.加速失败判定时间。线程数是可以被设定的。

    信号隔离:

        信号隔离也可以用于限制并发访问,防止阻塞扩散, 与线程隔离最大不同在于执行依赖代码的线程依然是请求线程(该线程需要通过信号申请, 如果客户端是可信的且可以快速返回,可以使用信号隔离替换线程隔离,降低开销。)

  

    

  2、熔断器

    熔断器是位于线程池之前的组件。用户请求某一服务之后,Hystrix会先经过熔断器,此时如果熔断器的状态是打开(跳起),则说明已经熔断,这时将直接进行降级处理,不会继续将请求发到线程池熔断器相当于在线程池之前的一层屏障。

    每个熔断器默认维护10个bucket ,每秒创建一个bucket ,每个blucket记录成功,失败,超时,拒绝的次数。当有新的bucket被创建时,最旧的bucket会被抛弃。

    服务调用原理:

       当触发熔断器阀值,熔断器打开:所有请求到降级方法; 熔断器等待时间到达会有个半开启状态,允许一个请求通行,如果成功则关闭熔断器,否则继续等待

      

  3、服务降级

    就是执行降级方法    

 

 

整个hystrix流程图

 

posted @ 2021-11-18 15:00  低调人生  阅读(607)  评论(0编辑  收藏  举报