Hystrix - 什么是服务雪崩?

回到顶部(go to top)

一、什么是服务雪崩?

雪崩效应:是一种因服务"提供者"的不可用导致服务"调用者"的不可用,并将不可用逐渐放大的过程

 下图中, A为服务提供者, B为A的服务调用者, C和D是B的服务调用者. 当A的不可用,引起B的不可用,并将不可用逐渐放大C和D时, 服务雪崩就形成了.

 

 

  

回到顶部(go to top)

二、什么原因造成了服务雪崩?

1)服务提供者不可用

  • a)硬件故障:硬件损坏造成的服务器主机宕机, 网络硬件故障造成的服务提供者的不可访问
  • b)程序Bug:
  • c) 缓存击穿:缓存击穿一般发生在缓存应用重启, 所有缓存被清空时,以及短时间内大量缓存失效时. 大量的缓存不命中, 使请求直击后端,造成服务提供者超负荷运行,引起服务不可用
  • d)用户大量请求:在秒杀和大促开始前,如果准备不充分,用户发起大量请求也会造成服务提供者的不可用

2)重试加大流量

  • a)用户重试:在服务提供者不可用后, 用户由于忍受不了界面上长时间的等待,而不断刷新页面甚至提交表单
  • b)代码逻辑重试: 服务调用端的会存在大量服务异常后的重试逻辑

3)服务调用者不可用

  • a)同步等待造成的资源耗尽:当服务调用者使用同步调用 时, 会产生大量的等待线程占用系统资源. 一旦线程资源被耗尽,服务调用者提供的服务也将处于不可用状态, 于是服务雪崩效应产生了。

 

回到顶部(go to top)

三、怎么解决服务雪崩

SpringCloud Netflix 的 Hystrix组件,解决服务雪崩问题的逻辑是:不可用服务的调用快速失败。一般通过以下三点来实现:

  • 资源隔离 
  • 熔断器
  • 熔断后的 降级方法

 

posted on   frank_cui  阅读(590)  评论(0编辑  收藏  举报

编辑推荐:
· AI与.NET技术实操系列(二):开始使用ML.NET
· 记一次.NET内存居高不下排查解决与启示
· 探究高空视频全景AR技术的实现原理
· 理解Rust引用及其生命周期标识(上)
· 浏览器原生「磁吸」效果!Anchor Positioning 锚点定位神器解析
阅读排行:
· DeepSeek 开源周回顾「GitHub 热点速览」
· 物流快递公司核心技术能力-地址解析分单基础技术分享
· .NET 10首个预览版发布:重大改进与新特性概览!
· AI与.NET技术实操系列(二):开始使用ML.NET
· 单线程的Redis速度为什么快?
< 2025年3月 >
23 24 25 26 27 28 1
2 3 4 5 6 7 8
9 10 11 12 13 14 15
16 17 18 19 20 21 22
23 24 25 26 27 28 29
30 31 1 2 3 4 5

导航

统计

levels of contents
点击右上角即可分享
微信分享提示