首页 > 编程语言 > 详细

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

时间:2019-05-14 21:59:35      阅读:529      评论:0      收藏:0      [点我收藏+]

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


引入依赖:

技术分享图片

加注解:

技术分享图片

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

技术分享图片

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

技术分享图片

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

技术分享图片

defaultFallback指向的通用方法是:

技术分享图片

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

技术分享图片

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

技术分享图片

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

技术分享图片

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

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


模拟服务超时场景:

技术分享图片

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

 

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

原文:https://www.cnblogs.com/niwotaxuexiba/p/10864832.html

(0)
(0)
   
举报
评论 一句话评论(0
关于我们 - 联系我们 - 留言反馈 - 联系我们:wmxa8@hotmail.com
© 2014 bubuko.com 版权所有
打开技术之扣,分享程序人生!