1. 为什么需求服务降级

背景:系统A调用系统B

1. B因io,load,deadlock等原因出现长时间卡顿或stw,会导致对外提供服务的能力下降,rt时间过长。
2. A接口调用B超时失败,往往会发生重试,重试+正常qps,导致对B系统的调用量增加,B系统雪上加霜,恢复更慢。
3. A调用B的线程会被更长时间占用(接口调用10ms,超时1s失败,重试3次,最坏情况接口耗时4s),A的性能受用影响,有可能级联影响到调用A的服务。形成一种链式的雪崩。

 

 

生产例子:

理论: redis使用单线程,单机处理能力qps 10W, redis中存放的对象应尽量小,如果存放对象过大会影响网络带宽,阻塞后续请求,导致qps大幅下降,客户端请求超时失败。 redis热点问题,qps激增也会导致类似的情况。

问题: 系统A->系统B->redis。因redis超时导致整个链路互相影响,形成雪崩。  
解决方案: 系统中除主流程外,大多数操作都是锦上添花的,增强客户体验效果的,这部分操作在紧急情况下,可以降级不作处理,以保证系统正常运行主流程不受影响。上述问题,如果感知B系统提供的服务出现问题,同时B系统提供的服务非主核心,降级不请求B接口。这样既减少了对B系统的请求,有利于B系统尽早恢复,同时也减少了A系统的性能损耗,避免了链式雪崩。
 

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值