zoukankan      html  css  js  c++  java
  • Spring Cloud--Hystrix服务熔断(线程隔离/服务降级)代码实现

    一旦服务阻塞就进行服务降级或线程隔离。要不然就会导致大面积服务的瘫痪,Hystrix就是干这个的,一出现不健康的服务就进行熔断,不阻塞后面线程的执行。


    引入依赖:

    加注解:

    这三个注解可以用一个注解搞定:

    当出现服务阻塞时,调用下面的方法:

    将注解加在类上,进行统一处理,不然的话,每个方法上都要添加如上这段内容,太臃肿:

    defaultFallback指向的通用方法是:

    类上添加@DefaultProperties注解指定默认的熔断处理方法后,只需要在方法上添加@HystrixCommand注解即可:

     可以通过@HystrixCommand注解设置服务的超时时间,超过设定的时间才会触发熔断机制,框架默认配置的超时时间是1000ms毫秒:

    也可以在配置文件中配置全局的超时时间属性,比如将默认的1秒配置为3秒,整个项目都通用:

     这样默认的超时时间是3秒,如果某个方法要自定义超时时间就使用上面注解的方式。

    这个default可以换成服务名称或方法名称,就只对指定的服务或方法起作用。


    模拟服务超时场景:

     线程隔离在我们进行代码配置的时候就已经在底层实现了。

  • 相关阅读:
    Sightseeing,题解
    A Simple Problem,题解
    城池攻占,题解
    传递,题解
    How many ways??,题解
    Least Cost Bracket Sequence,题解
    Evacuation,题解
    Tallest Cow,题解
    容易题,题解
    无题Ⅱ,题解
  • 原文地址:https://www.cnblogs.com/niwotaxuexiba/p/10864832.html
Copyright © 2011-2022 走看看