一、高并发带来的问题

在微服务架构中,我们将业务拆分成一个个的服务,服务与服务之间可以相互调用,但是由于网络原因或者自身的原因,服务并不能保证服务的100%可用,如果单个服务出现问题,调用这个服务就会出现网络延迟,此时若有大量的网络涌入,会形成任务堆积,最终导致服务瘫痪。

二、服务雪崩效应

在分布式系统中,由于网络原因或自身的原因,服务一般无法保证 100% 可用。如果一个服务出现了问题,调用这个服务就会出现线程阻塞的情况,此时若有大量的请求涌入,就会出现多条线程阻塞等待,进而导致服务瘫痪。

由于服务与服务之间的依赖性,故障会传播,会对整个微服务系统造成灾难性的严重后果,这就是服务故障的 雪崩效应 

雪崩发生的原因多种多样,有不合理的容量设计,或者是高并发下某一个方法响应变慢,亦或是某台机器的资源耗尽。我们无法完全杜绝雪崩源头的发生,只有做好足够的容错,保证在一个服务发生问题,不会影响到其它服务的正常运行。也就是"雪落而不雪崩"。

三、如何解决雪崩?

解决雪崩问题的常见方式有四种:

1.超时处理:

设定超时时间,请求超过一定时间没有响应就返回错误信息,不会无休止等待

2.舱壁模式:

限定每个业务能使用的线程数,避免耗尽整个tomcat的资源,因此也叫线程隔离。

3. 熔断降级:

由断路器统计业务执行的异常比例,如果超出阈值则会熔断该业务,拦截访问该业务的一切请求。

4.流量控制:

限制业务访问的QPS,避免服务因流量的突增而故障。

四、服务保护技术对比

Hystrix

Hystrix是由Netflix开源的一个延迟和容错库,用于隔离访问远程系统、服务或者第三方库,防止级联失败,从而提升系统的可用性与容错性。

Resilience4J

Resilicence4J一款非常轻量、简单,并且文档非常清晰、丰富的熔断工具,这也是Hystrix官方推荐的替代产品。不仅如此,Resilicence4j还原生支持Spring Boot 1.x/2.x,而且监控也支持和 prometheus等多款主流产品进行整合。

Sentinel

Sentinel 是阿里巴巴开源的一款断路器实现,本身在阿里内部已经被大规模采用,非常稳定。

Spring Cloud Alibaba-服务雪崩效应相关推荐

  1. Spring Cloud Alibaba 服务消费者调用 nacos 服务报错:java.net.UnknownHostException: xxx

    目录 1. 服务消费者启动类 1.1. 服务消费者 controller 2. 服务提供者启动类 2.1. 服务提供者 controller 3. 服务报错 4. nacos 信息 5. 解决思路 5 ...

  2. 【Spring Cloud Alibaba】Spring Cloud Alibaba 服务注册与发现实践

    1. 简介 服务注册与发现是微服务架构体系中最关键的组件之一.如果尝试着用手动的方式来给每一个客户端来配置所有服务提供者的服务列表是一件非常困难的事,而且也不利于服务的动态扩缩容.Nacos Disc ...

  3. Spring Cloud Alibaba 服务门户:Spring Cloud Gateway 如何把好微服务的大门

    上一讲我们学习了 Dubbo 是如何与 Nacos 协同作业.通过对比 RESTful 与 RPC,我们介绍了两种通信方式的区别,再通过实例讲解如何将 Dubbo 与 Nacos 进行整合.但你是否发 ...

  4. Spring Cloud Alibaba —— 服务注册与配置中心

  5. 防止内卷和被潜规则,Spring Cloud Alibaba微服务架构实战派(上下册)|35岁程序员那些事

    目录 1 写书缘由 2 本书上册核心内容 2.1 Spring Cloud Alibaba基础实战 2.1.1 主要内容 2.1.2 MyBatis-Plus实现多租户架构的核心原理 2.2 分布式服 ...

  6. SpringCloud学习笔记(1)- Spring Cloud Alibaba

    文章目录 SpringCloud学习笔记(1)- Spring Cloud Alibaba 服务治理 Nacos 服务注册 Nacos 服务发现与调用 Ribbon 负载均衡 Sentinel 服务限 ...

  7. 芋道 Spring Cloud Alibaba 介绍

    点击上方"芋道源码",选择"设为星标" 做积极的人,而不是积极废人! 源码精品专栏 原创 | Java 2020 超神之路,很肝~ 中文详细注释的开源项目 RP ...

  8. Spring Cloud Alibaba Nacos 分布式配置中心

    文章目录 1 摘要 2 核心 Maven 依赖 3 核心代码 3.1 bootstrap 配置文件 3.2 application 配置文件 3.3 配置测试类 - Controller 层 3.4 ...

  9. Spring Cloud Alibaba 系统保护:微服务架构雪崩效应与服务限流

    前面我们介绍了 OpenFeign 微服务间通信与 Spring Cloud Gateway 网关通信,这些是日常业务中的正常处理情况,但是在微服务环境下受制于网络.机器性能.算法.程序各方面影响,运 ...

最新文章

  1. 智源计算所-互联网虚假新闻检测挑战赛(冠军)方案,开源分享
  2. canvas是什么牌子的包_Jack Spade DIPPED INDUSTRIAL CANVAS UTILITY BRIEF 男款帆布手提包
  3. Visual C# 2008+SQL Server 2005 数据库与网络开发--9.1.1 SQL Server 2005中的XML功能
  4. php html采集,php file_get_contents函数轻松采集html数据
  5. android常用组件之RadioGroup
  6. facebook机器学习_如何为您的页面创建Facebook Messenger机器人
  7. JavaScript习题(数组去重、有序数组乱序排列)
  8. Android 浮窗开发之窗口层级
  9. 长城守卫 Beijing guards CERC 2004 LA3177 解题总结
  10. android+mms发送流程,mms发送流程代码版droid.docx
  11. 2021年中国电缆吹风机市场趋势报告、技术动态创新及2027年市场预测
  12. python线程join方法_Python多线程join()用法
  13. R语言与数据挖掘学习笔记(常用的包)
  14. nyoj--860--又见01背包--01背包的变形
  15. 第一次用ASP.NET MVC2 做网站
  16. eclipse 安装gradle并成功创建一个项目
  17. matlab如何模拟数字舵机,模拟舵机和数字舵机区别
  18. manjaro pacman 使用方法总结
  19. 微信小程序注册流程详解
  20. 利用Navicat Premium导出数据库表结构信息至Excel

热门文章

  1. 压强与浮力·复习整理
  2. 2021-11-12‘穿搭速递’首页制作
  3. 仿微信朋友圈时间显示 根据时间获取几分钟前,几小时前,几天前,几月前,几年前
  4. Flutter从入门到精通之Dart基础篇(一)
  5. LeetCode高频题:最长公共子序列,玩游戏A和游戏B,两兄弟加起来最多可以获得多少奖品
  6. 如果你不想继续穷下去,就看看吧,想想吧
  7. 解决虚拟机中无法访问USB串口设备问题
  8. 数值分析笔记(考试极简版附教程视频链接)
  9. CreateProcess失败的问题
  10. layui数据表格简单使用