雪崩效应产生
- 流量激增
- 缓存刷新
- 程序有bug
- 硬件故障
- 数据库严重瓶颈
- 线程等待同步
雪崩效应解决
- 超时机制
- 断路器模式
一、Hystrix介绍
Hystrix是Netflix开源的一个延迟和容错库,用于隔离访问远程服务、第三方库,防止出现级联失败,来为我们的微服务提供防护
Hystrix主要的作用就是:服务的熔断、服务降级、服务限流、近实时监控。
二、线程隔离,服务降级
服务降级
为服务调用提供一个兜底策略,当服务出现异常时,可以调用服务降级方法来快速失败,不会让线程一致阻塞。
线程隔离&服务降级
hystrix为微服务的调用,内置了小型线程池,当我们调用服务时,会从线程池创建一个线程去调用, 如果出现超时线程池里面的线程被阻塞不影响我们tomcat的线程。
如果线程池已满,或者请求超时,则会进行降级处理:返回给用户一个错误提示或备选结果。
触发Hystrix服务降级的情况:
- 线程池已满
- 请求超时
三、Hystrix案例实现
(1)、引入依赖
<dependency>
<groupId>org.springframework.cloud</groupId>
<artifactId>spring-cloud-starter-netflix-hystrix</artifactId