【笔记】Hystrix学习笔记
前言
Hystrix是一个系统容错工具
添加依赖
- 修改
pom.xml
配置文件
1 | <dependency> |
降级
调用服务器失败(宕机、500错、超时),可以降级执行当前服务中的一段代码,向客户端返回结果,快速失败
在启动类添加
@EnableCircuitBreaker
注解启用断路器
1 |
|
- 在调用远程的方法上添加注解
@HystrixCommand()
,通过fallbackMethod
参数指定降级方法名,并添加降级方法
1 |
|
Hystrix超时
Hystrix有默认的超时时间为1秒
修改
application.yml
配置文件
1 | hystrix: |
熔断
当访问量过大,出现大量失败,可以做过热保护,断开远程服务不再调用,实现限流,防止故障传播
断路器打开的条件
- 10秒内20次请求
- 50%失败
断路器打开后,直接执行降级代码
断路器打开几秒后,会进入半开状态,客户端调用会尝试向后台服务发送一次调用,如果调用成功,断路器可以自动关闭恢复正常,如果仍然失败,继续保持打开状态几秒钟
加了降级后,无需额外配置,自动开启熔断
故障监控
- 利用
Actuator
,来暴露Hystrix
的故障日志 - SpringBoot提供的日志监控工具,可以暴露项目中多种监控信息
- 健康状态
- 系统环境变量
- Spring容器中所有的对象
- SpringMVC映射的所有路径
健康检查
添加依赖
- 修改
pom.xml
配置文件,添加actuator依赖
1 | <dependency> |
修改配置
- 修改
application.yml
配置文件
*
:暴露所有的监控health
:只暴露健康状态["health","beans","mappings"]
:暴露指定的监控hystrix.stream
:hystrix监控
1 | management: |
Hystrix Dashboard
添加依赖
- 修改
pom.xml
配置文件
1 | <dependency> |
配置
- 修改
application.yml
配置文件
1 | server: |
配置启动类
- 在启动类添加
@EnableHystrixDashboard
注解
1 |
|
访问仪表盘
- 访问子路径
localhost:4001/hystrix