雪崩效应

雪崩效应

雪崩效应(Cascading failure),即基础服务不可用,导致调用方的服务 不可用,这样,影响范围不断扩大,犹如雪崩一般。
对于一个高并发的系统,如果 A服务挂了, 那么 B服务请求 A,就会强制等待,请求超时。一次请求对应一个线程,如果线程被阻塞了,不断积累,最后会耗尽 服务器的 请求线程(比如1秒请求500个线程)。危害不断放大,整一个系统最终不可用。

对于雪崩效应,要有自己的容错机制。设置比较短的超时时间,如果线程释放的速度够快,就不会被拖垮。

  1. 超时
  2. 限流 (限流算法,超过一定数量的请求,拒绝掉)
  3. 仓壁模式 (设置独立的线程池,不至于耗尽所有的线程)
  4. 断路器模式 (错误率达到阈值,就立刻跳闸)

可以了解 Sentinel中间件的基本使用