Spring Cloud--Hystrix服务熔断(线程隔离/服务降级)代码实现

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


引入依赖:

加注解:

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

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

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

defaultFallback指向的通用方法是:

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

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

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

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

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


模拟服务超时场景:

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

 

posted @ 2019-05-14 21:50  学亮编程手记  阅读(2036)  评论(0编辑  收藏  举报