1. 服务器雪崩效应

​ 在分布式系统中,由于网络原因或自身的原因,服务一般无法保证 100% 可用。如果一个服务出现了

问题,调用这个服务就会出现线程阻塞的情况,此时若有大量的请求涌入,就会出现多条线程阻塞等

待,进而导致服务瘫痪。

​ 由于服务与服务之间的依赖性,故障会传播,会对整个微服6后果,这就是

服务故障的 “雪崩效应” 。

  • 情景1: 微服务之间相互调用,关系复杂,正常情况如下图所示:

  • 情景2:某个时刻,服务A挂了,服务B和服务C依然在调用服务A

![在这里插入图片描述](https://img-blog.csdnimg.cn/20210710220139836.png?x-oss-process=image/watermark,type_ZmFuZ3poZW5naGVpdGk,shadow_10,text_aHR0cHM6Ly9ibG9nLmNzZG4ubmV0L3dlaXhpbl81NzQ5NTE2MQ==,size_16,color_FFFFFF,t_70)
  • 情景3:由于服务A挂了,导致服务C和服务B无法得到服务A的响应,这时候服务C和服务B由于大量线程积压,最终导致服务C和服务B挂掉.

  • 情景4: 相同道理,由于服务之间有关联,所以会导致整个调用链上的所有服务都挂掉.

​ 服务器的雪崩效应其实就是由于某个微小的服务挂了,导致整一大片的服务都不可用.类似生活中的雪崩效应,由于落下的最后一片雪花引发了雪崩的情况.

​ 雪崩发生的原因多种多样,有不合理的容量设计,或者是高并发下某一个方法响应变慢,亦或是某

台机器的资源耗尽。我们无法完全杜绝雪崩源头的发生,只有做好足够的容错,保证在一个服务发生问

题,不会影响到其它服务的正常运行。

2. 常见容错方案

​ 要防止雪崩的扩散,我们就要做好服务的容错,容错说白了就是保护自己不被猪队友拖垮的一些措

施, 下面介绍常见的服务容错思路和组件。

常见的容错思路

常见的容错思路有隔离、超时、限流、熔断、降级这几种,下面分别介绍一下。

  • 隔离机制: 比如服务A内总共有100个线程, 现在服务A可能会调用 服务B,服务C,服务D.我们在服务A进行远程调用的时候,给不同的服务分配固定的线程,不会把所有线程都分配给某个微服务. 比如调用服务B分配30个线程,调用服务C分配30个线程,调用服务D分配40个线程. 这样进行资源的隔离,保证即使下游某个服务挂了,也不至于把服务A的线程消耗完。比如服务B挂了,这时候最多只会占用服务A的30个线程,服务A还有70个线程可以调用服务C和服务D.

    *

  • 超时机制: 在上游服务调用下游服务的时候,设置一个最大响应时间,如果超过这个时间,下游未作出反应,

    就断开请求,释放掉线程。

  • 限流机制: 限流就是限制系统的输入和输出流量已达到保护系统的目的。为了保证系统的稳固运行,一旦达到

    的需要限制的阈值,就需要限制流量并采取少量措施以完成限制流量的目的。

    *

  • 熔断机制: 在互联网系统中,当下游服务因访问压力过大而响应变慢或失败,上游服务为了保护系统整

    体的可用性,可以暂时切断对下游服务的调用。这种牺牲局部,保全整体的措施就叫做熔断。

    *

    服务熔断一般有三种状态:

    • 熔断关闭状态(Closed)

    服务没有故障时,熔断器所处的状态,对调用方的调用不做任何限制

    • 熔断开启状态(Open)

    后续对该服务接口的调用不再经过网络,直接执行本地的fallback方法

    • 半熔断状态(Half-Open)

    尝试恢复服务调用,允许有限的流量调用该服务,并监控调用成功率。如果成功率达到预

    期,则说明服务已恢复,进入熔断关闭状态;如果成功率仍旧很低,则重新进入熔断关闭状

    态。

  • 降级机制: 降级其实就是为服务提供一个兜底方案,一旦服务无法正常调用,就使用兜底方案。

*

服务器雪崩效应及解决方案相关推荐

  1. 微服系列之雪崩效应的解决方案

    为了系统的可用性和可靠性,为了防止系统的整体缓慢甚至到崩溃,这里介绍三种技术手段应对微服务中的雪崩效应,这三种技术手段分别从系统可用性.可靠性角度出发,尽可能的防止系统出现雪崩现象 1.服务熔断 服务 ...

  2. 雪崩效应及其常见场景和解决方案

    一.什么是雪崩效应? 在分布式系统架构中,多个系统之间通常是通过远程 RPC 调用进行通信,也就是 A 系统调用 B 系统服务,B 系统调用 C 系统服务等(实现方式有 Spring Boot + D ...

  3. 阿里P8架构师谈:什么是缓存雪崩?服务器雪崩的场景与解决方案

    什么是应用服务雪崩 雪崩问题 分布式系统都存在这样一个问题,由于网络的不稳定性,决定了任何一个服务的可用性都不是 100% 的.当网络不稳定的时候,作为服务的提供者,自身可能会被拖死,导致服务调用者阻 ...

  4. Spring Cloud Alibaba 雪崩效应和容错解决方案

    Spring Cloud Alibaba 雪崩效应和容错解决方案 文章目录 1. 雪崩效应 1.1. 举个例子: 2. 常见的容错方案: 2.1.超时: 2.2. 限流: 2.3. 仓壁模式: 2.3 ...

  5. 什么是缓存雪崩?服务器雪崩的场景与解决方案

    什么是应用服务雪崩 雪崩问题 分布式系统都存在这样一个问题,由于网络的不稳定性,决定了任何一个服务的可用性都不是 100% 的.当网络不稳定的时候,作为服务的提供者,自身可能会被拖死,导致服务调用者阻 ...

  6. 谈谈redis缓存击穿透和缓存击穿的区别,雪崩效应

    谈谈redis缓存击穿透和缓存击穿的区别,雪崩效应 面试经历 在很长的一段时间里,我以为缓存击穿和缓存穿透是一个东西,直到最近去腾讯面试,面试官问我缓存击穿和穿透的区别:我回答它俩是一样的,面试官马上 ...

  7. JAVA物联所需技术_基于JAVA多线程技术解决物联云端服务雪崩效应的方法与流程...

    本发明涉及互联网技术领域,特别涉及一种基于JAVA多线程技术解决物联云端服务雪崩效应的方法. 背景技术: 目前,物联云系统已经作为普遍的智能电视平台出现在我们面前,而细致分析物联云系统我们可以发现,当 ...

  8. Redis缓存穿透,缓存击穿,缓存雪崩原因以及解决方案

    一.前言 在我们日常的开发中,无不都是使用数据库来进行数据的存储,由于一般的系统任务中通常不会存在高并发的情况,所以这样看起来并没有什么问题,可是一旦涉及大数据量的需求,比如一些商品抢购的情景,或者是 ...

  9. 后端服务的雪崩效应及解决思路

    北京大佬102小时讲完的Python,整整300集,通俗易懂,手把手带你一起学Python!_哔哩哔哩_bilibili 1.RPC与本地调用的区别 RPC远程调用,一般是跨平台.采用http协议,因 ...

最新文章

  1. Xtrabackup的“流”及“备份压缩”功能
  2. FFmpeg优化 苏宁PP体育视频剪切效率提升技巧
  3. Linux 内核顶层Makefile 详解
  4. java中 hashset_Java中的HashSet
  5. 云+X案例展 | 民生类: “中企通信 × TutorABC”共创全球数字教育科技新里程
  6. 算法----字符串拷贝
  7. My.WinformMvc,一个 Winform MVC 框架
  8. pdf照片显示正常打印时被翻转_明天开始打印准考证,你需要注意这些!
  9. virtuoso配合calibre进行电路后仿真
  10. vscode彻底卸载记录/使用经验
  11. 海康sip服务器是什么意思_sip协议端口有什么作用?sip端口号详解
  12. 远程访问ESXi网页控制台
  13. 如何理解移动端设计稿的计算问题(移动端屏幕适配和px转rem)
  14. SpiceyPy-内核与时间尺度转换
  15. 【极光推送】项目包名更改后极光推送不能使用的解决办法
  16. fiddler everywhere新功能简单说明
  17. 计算机音乐念诗之王,念诗之王(电音版)
  18. Scaled-YOLOv4 简单学习笔记
  19. Go语言Gin框架源码分析
  20. 【重识云原生】第三章云存储3.5节——商用分布式云存储方案

热门文章

  1. css中如何让自己的背景图片平铺整个屏幕
  2. 注意力机制 - 注意力汇聚:Nadaraya-Watson核回归
  3. BEGAN-carpedm代码调试
  4. 单片机c语言程序设计中可以不分大小写,论单片机课程教学中C语言编程的规范性...
  5. 数据加密 三种密钥交换算法详解(RSA DHE ECDHE)
  6. 二维卷积定理的验证(下,cv2.filter2D())
  7. 发光二极管pcb封装图画法_基础篇 -- 二极管
  8. python深度神经网络量化,基于python的第一个深度神经网络-交通信号灯学习
  9. button靠右排列
  10. 春招开启!分享我的这里,腾讯,京东,华为等名企面经,本人均已拿offer!