Spring Cloud--Hystrix服务熔断(线程隔离/服务降级)代码实现
2024-08-23 19:02:05
一旦服务阻塞就进行服务降级或线程隔离。要不然就会导致大面积服务的瘫痪,Hystrix就是干这个的,一出现不健康的服务就进行熔断,不阻塞后面线程的执行。
引入依赖:
加注解:
这三个注解可以用一个注解搞定:
当出现服务阻塞时,调用下面的方法:
将注解加在类上,进行统一处理,不然的话,每个方法上都要添加如上这段内容,太臃肿:
defaultFallback指向的通用方法是:
类上添加@DefaultProperties注解指定默认的熔断处理方法后,只需要在方法上添加@HystrixCommand注解即可:
可以通过@HystrixCommand注解设置服务的超时时间,超过设定的时间才会触发熔断机制,框架默认配置的超时时间是1000ms毫秒:
也可以在配置文件中配置全局的超时时间属性,比如将默认的1秒配置为3秒,整个项目都通用:
这样默认的超时时间是3秒,如果某个方法要自定义超时时间就使用上面注解的方式。
这个default可以换成服务名称或方法名称,就只对指定的服务或方法起作用。
模拟服务超时场景:
线程隔离在我们进行代码配置的时候就已经在底层实现了。
最新文章
- iOS 解决LaunchScreen中图片加载黑屏问题
- 分布式入门之1:Lease机制
- mysql数据库管理备份运维常用命令
- 说一说&;&;符
- ASP.NET C# 有程序集加不了解决办法
- Windows Phone开发(10):常用控件(上)
- mongodb学习(二)分级查询数组中的值
- Oracle-09:聚合函数
- python学习day20 面向对象(二)类成员&;成员修饰符
- GMT\UTC YYYY-MM-DDTHH:mm:ss.sssZ、YYYY-MM-DDTHH:mm:ss.sss+8:00意义及与北京时间转换
- 设计模式C++学习笔记之十八(Visitor访问者模式)
- 用Quartz 2D画小黄人
- Gson解析第三方提供Json数据(天气预报,新闻等)
- Github作为图床的一个小坑
- Django model 中设置联合约束和联合索引
- PHP 验证码:扭曲+粘连+变形
- 批量远程执行linux服务器程序--基于paramiko(多线程版)
- [Training Video - 6] [File Reading] [Java] Create and Write Excel File Using Apache POI API
- SVM 为什么要从原始问题变为对偶问题来求解
- JS动态修改微信浏览器中的title