美文网首页
雪崩效应及常见的容错方案

雪崩效应及常见的容错方案

作者: 蝌蚪1573 | 来源:发表于2019-11-23 19:41 被阅读0次

雪崩效应

服务雪崩效应就是因为服务提供者不可用,导致服务直接或间接的调用者不可用,最终把不可用的范围不断放大。

服务雪崩.png
    以上图为例,A作为服务提供者,B是A的服务调用者,C是B的服务调用者,D和E是C的服务调用者;当服务A不可用时(所有实例都挂了 ),而服务B还在疯狂调用服务A的API,A服务挂了就会导致B发往A的请求强制等待,直至请求超时;Java程序中,一次请求往往代表一个线程,如果请求被强制等待了,线程就会被强制阻塞,直到请求超时线程才会被释放;在高并发的应用系统中,阻塞的线程会越来越多,而线程代表着服务器的计算资源(如内存、CPU),如果不做任何处理,终将导致B服务也无法创建新的线程,B服务也挂了;同理,也导致调用B的服务C不可用,最终导致整个系统服务宕机

常见的容错方案

  • 超时
    设置较短的超时时间,不管是否请求成功,只要一到超时时间,线程就会释放
  • 限流
    设置合理的QPS,只要超过整个阈值,请求就会被直接拒绝,实现了自我保护
  • 仓壁模式
    为每个API创建独立的线程池
  • 断路器模式
state.png
马丁大叔眼里的断路器模式

相关文章

网友评论

      本文标题:雪崩效应及常见的容错方案

      本文链接:https://www.haomeiwen.com/subject/effhwctx.html