微服务架构 —— 服务雪崩与容错方案

导航

  • 一、什么是服务雪崩
  • 二、雪崩效应的三个核心原因
  • 三、容错
  • 四、业界常见容错思路
  • 五、常见容错组件

一、什么是服务雪崩

服务雪崩 指的是微服务架构中,微服务各节点之间由于网络通信异常或微服务自身故障等问题,导致请求堆积、任务堆积,消耗和占用容器线程,并由此而影响其他正常业务流程以及其他微服务节点,局部故障扩散为整体故障的一种现象,严重时可能导致整个系统瘫痪,就行“雪崩”一样。

在这里插入图片描述

二、雪崩效应的三个核心原因

  1. 被上游服务压垮
    tomcat 在处理请求时会分配线程资源,但这个资源是有限的,默认的 tomcat 线程数是 200,可以通过 server.tomcat.max-threads 参数设置。但如果上游服务在某一时刻发来大量的请求,一度超过当前节点可以处理的请求数量,就可能会导致节点故障,引发雪崩。常见的解决办法是限流

  2. 被下游服务拖垮
    由于下游服务的响应过慢,导致服务堆积,从而拖慢了当前节点的处理节奏,积小成多,造成雪崩。
    常见的解决办法是增加超时机制、熔断、降级等。

  3. 外部环境影响
    当前节点所处的服务器环境,如内存、cpu等,同样可能影响当前节点的处理速度。

三、容错

服务故障不可避免,但是决不能因为局部故障导致大面积的服务瘫痪,容错是为了通过某些手段尽可能的减小发生故障的概率,以及就算发生了故障也不至于扩散开来,目的是提高整体微服务架构的可用性,做到“雪落而不雪崩”。

上面提到的 限流、熔断、降级等,都是容错的常见措施。

四、业界常见容错思路

  1. 隔离
    指的是在服务内部,对一些业务进行划分,尽量减少故障线程耗尽所有服务线程资源。
    常见的隔离手段有:线程池隔离、信号量隔离
    在这里插入图片描述

  2. 超时
    设置最大响应时间,避免线程资源占用过久。

  3. 限流
    限制请求的数量,一旦达到阈值,就拒绝额外的请求进入服务,保护服务节点的正常、平稳的运行。

  4. 熔断
    当下游服务因为访问压力过大而响应变慢或失败,上游服务为了保护系统整体可用性,可以暂时切断对下游服务的调用,即牺牲局部,保全整体
    熔断分为三种状态:关闭、开启、半熔断。关闭:服务没有故障时熔断器所处的状态,对调用方的调用无任何限制;开启:后续对该接口的调用不再经过网络,直接执行本地的 fallback 方法;半熔断:尝试恢复服务调用,允许有限的流量调用该服务,并监控调用成功率,如果达到预期,进入熔断关闭状态,若未达预期,则重新进入开启状态。

  5. 降级
    托底方案,如果微服务调用失败,如超时,就执行降级方案。

五、常见容错组件

Sentinel、Hystrix、Resilience4j
在这里插入图片描述

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.mzph.cn/news/558629.shtml

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈email:809451989@qq.com,一经查实,立即删除!

相关文章

手游方舟怎么输入代码_明日方舟再次登顶失败,为了不发十连奖励,鹰角实力控分?...

在明日方舟新版本活动“孤岛风云”正式上线后,关于干员的强度和游戏剧情的讨论也在最近多了起来。尤其是在一周年卫星干员山落地,并且人气干员塞雷娅背后的故事揭晓之后,明日方舟的热度也在玩家圈子中迅速的攀升,成为近期话题量十…

Spring Cloud Alibaba —— Sentinel 入门

导航一、什么是Sentinel1.1 Sentinel 的优点二、整合 Sentinel 演示三、Sentinel控制台与微服务通信的原理四、Sentinel 流控演示一、什么是Sentinel Sentinel 是阿里开源的用于提供微服务架构容错方案的组件。它以流量作为切入点,从流量控制、熔断降级、系统负载保…

Spring Cloud Alibaba —— Sentinel 详细使用

导航引言一、Sentinel的两个基本概念二、流控规则2.1 基本选项2.2 高级选项三、熔断(降级)规则四、热点规则五、授权规则(了解)六、系统规则(了解)七、自定义异常返回八、SentinelResource九、Sentinel 规则持久化(待补…

扫地机器人单扫和双扫_小米扫拖机器人体验:再见了,拖把君

小米在2016年首次推出了扫地机器人,凭借产品力和性价比,可以说为中国家庭的智能清洁概念普及,立下一功。不过,近两年因为一直没有推出扫拖一体产品,急得民间高手都开始自己动手给米家扫地机改造拖地功能了,…

Spring Cloud —— Gateway 服务网关

导航一、什么是服务网关二、业界常见网关组件三、Spring Cloud Gateway四、Gateway 快速入门4.1 创建 gateway 服务4.2 添加 gateway 依赖和 nacos 依赖4.3 配置路由信息4.4 测试路由转发五、Gateway 执行流程六、Gateway 断言6.1 内置路由断言工厂6.2 自定义路由断言工厂七、G…

图形显卡_选核芯显卡还是独立显卡?这才是决定笔记本电脑性能的关键

买笔记本电脑的时候,选核芯显卡还是独立显卡是很多朋友纠结的问题。核芯显卡是建立在和处理器同一内核芯片上的图形处理单元,而独立显卡拥有单独的图形核心和独立的显存。那么具体哪个更好呢?这里就来介绍一下。两者各自的特点核芯显卡和传统…

Spring Cloud —— 链路追踪技术

导航一、什么是链路追踪二、Spring Cloud Sleuth2.1 相关概念三、Sleuth 入门案例四、Zipkin 的集成4.1 Zipkin 介绍4.2 Zipkin 服务端安装4.3 Zipkin 客户端安装五、Zipkin 数据持久化5.1 MySQL 数据持久化5.2 Elasticsearch 数据持久化一、什么是链路追踪 在大型系统的微服务…

bool类型数组转换成一个整数_「PHP」常用的数组键值操作函数,面试重点

数组键值操作函数1、array_values ( array $array ) : array返回数组中所有的值的数组$a[name>jikeshiguangji,age>26];print_r(array_values($a));运行结果:$aarray("name">"jikeshiguangji","age">"26");pri…

Spring Cloud —— 消息队列与 RocketMQ

导航一、什么是 MQ二、常见的 MQ 产品三、RocketMQ 概念与架构设计3.1 基本概念1、消息模型(Message Model)2、生产者与消费者(Producer & Consumer)3、主题(Topic)4、代理服务器与名称服务&#xff08…

惠普打印机只打印一半_惠普打印机如何安装 惠普打印机加墨方法【介绍】

对于多数上班族和学生党来说,平时办公和学习不仅仅离不开 电脑 ,与此同时还需要 打印机 起到辅助作用。目前市场上的打印机品牌较多,惠普就是其中知名度较高的一个牌子,拥有大批的消费群体。但是有些人在将打印机买回来之后&#…

Spring Cloud —— RocketMQ 的消息类型

导航引言一、普通消息1.1 可靠同步发送1.2 可靠异步发送1.3 单向发送二、顺序消息三、事务消息3.1 什么是事务消息3.2 事务消息示例1、编写本地事务逻辑2、发送半事务消息3、注册本地事务监听器4、测试引言 本文承接《Spring Cloud —— 消息队列与 RocketMQ》 RocketMQ 提供…

城市运行一网统管_全国率先!“一屏观天下、一网管全城”,临港城市运行“一网统管”平台启动建设...

景区里是否出现了大客流?渣土车是否有违规?工地上有没有安全隐患?……8月12日,临港新片区城市运行“一网统管”平台正式启动建设,临港新片区城市运行“一网统管”中长期规划也正式发布,通过构建具有临港新片…

Spring Cloud Alibaba —— Nacos Config 配置中心

导航引言一、什么是配置中心二、常见的配置中心组件三、Nacos Config 入门四、Nacos Config 动态配置4.1 硬编码方式(默认支持动态生效)4.2 属性注入五、配置共享5.1 相同微服务不同环境间共享5.2 不同微服务配置共享六、Nacos Config 的几个概念总结引言…

codesys com库_CODESYS在线库,酷德网镜像站启用

近期由于国内网络问题,造成 stroe.codesys.com 网站无法访问。在线库无法下载。为了不影响广大CODESYS用户的正常使用,酷德网建立stroe.codesys.com的国内镜像站:主站: https://store.hicodesys.com:8421/CODESYSLibs/备用站: …

分布式事务的解决思路与方案

导航一、事务的种类与场景二、分布式事务解决方案2.1 全局事务2.2 可靠消息事务2.3 最大努力通知2.4 TCC 事务三、TCC 模式常见问题3.1 二阶段幂等3.2 空回滚3.3 资源悬挂一、事务的种类与场景 本地事务实际上就是指数据库的事务,参考《MySQL —— 事务与隔离级别总…

css3 下边框缓缓划过_干货来袭!web前端开发工程师必看之如何使用CSS3实现瀑布流效果?...

首先,我们来看一下什么是瀑布流布局效果,比如电商网站 蘑菇街原理图:在一个大盒子里,放置多个小盒子,小盒子的大小可以不一致,长短不一样,呈现一种瀑布流的效果。使用CSS3S实现只需要如下4步:1. 准备图片素材2. 书写相应HTML结构3…

Spring Cloud Alibaba —— Seata 分布式事务框架

导航一、Seata 介绍二、Seata 的工作原理2.1 三个角色2.2 工作流程三、Seata AT 工作机制3.1 一阶段3.2 二阶段四、案例演示(待补充)一、Seata 介绍 官网:Seata 官网 Seata 是2019 年阿里巴巴中间件团队发起的开源项目,其前身是…

云麦体脂秤华为体脂秤_华为、小米和有品体脂秤哪个品牌好?三款智能体脂秤横评结果排行...

如今生活水平的提高,也让更多人开始关注健康问题。由于大部分时间都忙于工作,本身就运动少、体重超标等等。如果长期得不到控制的话,会造成日后脂性肝炎、肝纤维化、肝癌,想想都可怕,在意识到这样的严重性,…

idea 调用c#接口_Dubbo 接口测试方法

一.直接通telnet然后用dubbo协议调用方法(1)在项目的配置文件中可以看到dubbo.protocol.port10022说明dubbo对外暴漏的端口为10022,直接用telnet访问此端口。telnet lcoalhost 10022然后就能看到说明连接成功。用ls查看服务查看服务下有那些方…

MySQL 面试问答

导航一、什么是回表查询?如何避免回表查询?二、为什么MySQL建议使用自增主键?什么是代理主键、业务主键?三、为什么MySQL建议单表不超过2000W数据?四、MySQL自增id用完了怎么办?五、MySQL自增主键是连续的吗…