Hystrix
- 容错
- 限流
降级
调用远程服务失败(异常, 服务不存在–调用的服务宕机或者调用的服务没启动, 超时–响应迅速,提高用户体验),可执行当前服务的一段代码,向客户端响应
- 返回错误提示
- 返回缓存数据
实现降级
- 添加hystrx依赖
<dependency>
<groupId>org.springframework.cloud</groupId>
<artifactId>spring-cloud-starter-netflix-hystrix</artifactId>
</dependency>
-
添加注解@EnableCircuitBreaker
-
远程调用代码上,添加@HystrixCommand(fallbackMethod=“降级方法名”)
-
完成降级方法
熔断
特殊情况,在特点条件下触发
- 10秒内20次请求(必须首先满足)
- 50%失败,执行降级代码
熔断时,不会向后台服务调用,而是直接执行当前服务的降级代码的放回结果
断路器打开几秒后,会进入"半开状态",会尝试向后台服务器发送调用,如果失败继续保持打开状态,如果成功断路器自动关闭,恢复正常
Hystrix超时
启用Hystrix后,它有默认超时时间:1秒
如果hystrix和ribbon重试一起使用,超时时间应该设置成大于等于ribbon总的超时时间
Hystrix Dashboard
hystrix监控仪表盘
Actuator
spring boot提供的项目监控工具,可以对外暴露项目的多种监控信息
- 健康状态
- spirng容器中所有的对象
- SringMVC设置的所有映射路径
- 系统环境变量
- …
Hystrix利用Actuator工具,暴露了自己的监控数据
添加Actuator
- 添加actuator依赖
<dependency>
<groupId>org.springframework.boot</groupId>
<artifactId>spring-boot-starter-actuator</artifactId>
</dependency>
- 暴露监控端点(m.e.w.e.i="*"–暴露所有监控端点 m.e.w.e.i=[health,env,beans]–指定暴露多个端点 m.e.w.e.i=hystrix.stream–暴露一个端点)
- 访问路径
搭建仪表盘项目
Hystrix Dashboard是一个完全独立的项目