SpringCloud Sentinel学习

  1. 雪崩问题
  2. 解决雪崩方式
  3. 总结雪崩
    1. 什么是雪崩问题?
    2. 如何避免因瞬间高并发流量而导致服务故障?
    3. 如何避免因服务故障引起的雪崩问题?

雪崩问题

微服务调用链路中的某个服务故障,引起整个链路中的所有微服务都不可用,这就是雪崩。

解决雪崩方式

常见方式有四种:

  • 超时处理:设定超时时间,请求超过一定时间没有响应就返回错误信息,不会无休止等待。这模式只是缓解雪崩问题,但如果请求释放速度没有请求进入的速度快,最终服务器资源也会被耗尽,所以只能是缓解了雪崩。
  • 舱壁模式:限定每个业务能使用的线程数,避免耗尽整个tomcat的资源,因此也叫线程隔离。虽然这模式能解决雪崩问题,但也有些弊端,就是会浪费给定的线程数的资源
  • 熔断降级:由断路器统计业务执行的异常比例,如果超出阈值则会熔断该业务,拦截访问该业务的一切请求。这方式比较好解决雪崩问题
  • 流量控制:限制业务访问的QPS,避免服务因流量的突增而故障。这方式可以预防雪崩问题

总结雪崩

什么是雪崩问题?

微服务之间互相调用,因为调用链中的一个服务故障,引起整个链路都无法访问的情况。

如何避免因瞬间高并发流量而导致服务故障?

流量控制

如何避免因服务故障引起的雪崩问题?

  • 超时处理
  • 线程隔离
  • 降级熔断