失效链接处理 |
高可用:降级和熔断有什么区别? PDF 下载
本站整理下载:
相关截图:
![]()
主要内容:
降级是从系统功能优先级的⻆度考虑如何应对系统故障。
服务降级指的是当服务器压⼒剧增的情况下,根据当前业务情况及流量对⼀些服务和
⻚⾯有策略的降级,以此释放服务器资源以保证核⼼任务的正常运⾏。
降级服务的特征如下 :
1. 原因:整体负荷超出整体负载承受能⼒。
2. ⽬的:保证重要或基本服务正常运⾏,⾮重要服务延迟使⽤或暂停使⽤
3. ⼤⼩:降低服务粒度,要考虑整体模块粒度的⼤⼩,将粒度控制在合适的范围内
4. 可控性:在服务粒度⼤⼩的基础上增加服务的可控性,后台服务开关的功能是⼀
项必要配置(单机可配置⽂件,其他可领⽤数据库和缓存),可分为⼿动控制和
⾃动控制。
5. 次序:⼀般从外围延伸服务开始降级,需要有⼀定的配置项,重要性低的优先降
级,⽐如可以分组设置等级 1-10,当服务需要降级到某⼀个级别时,进⾏相关配
置
延迟服务:⽐如发表了评论,重要服务,⽐如在⽂章中显示正常,但是延迟给⽤
户增加积分,只是放到⼀个缓存中,等服务平稳之后再执⾏。
在粒度范围内关闭服务(⽚段降级或服务功能降级):⽐如关闭相关⽂章的推
荐,直接关闭推荐区
⻚⾯异步请求降级:⽐如商品详情⻚上有推荐信息/配送⾄等异步加载的请求,如
果这些信息响应慢或者后端服务有问题,可以进⾏降级;
⻚⾯跳转(⻚⾯降级):⽐如可以有相关⽂章推荐,但是更多的⻚⾯则直接跳转
到某⼀个地址
写降级:⽐如秒杀抢购,我们可以只进⾏ Cache 的更新,然后异步同步扣减库存
到 DB,保证最终⼀致性即可,此时可以将 DB 降级为 Cache。
读降级:⽐如多级缓存模式,如果后端服务有问题,可以降级为只读缓存,这种
⽅式适⽤于对读⼀致性要求不⾼的场景。
降级按照是否⾃动化可分为:
⾃动开关降级(超时、失败次数、故障、限流)
⼈⼯开关降级(秒杀、电商⼤促等)
⾃动降级分类⼜分为 :
1. 超时降级:主要配置好超时时间和超时重试次数和机制,并使⽤异步机制探测回
复情况
2. 失败次数降级:主要是⼀些不稳定的 api,当失败调⽤次数达到⼀定阀值⾃动降
级,同样要使⽤异步机制探测回复情况
3. 故障降级:⽐如要调⽤的远程服务挂掉了(⽹络故障、DNS 故障、http 服务返回
错误的状态码、rpc 服务抛出异常),则可以直接降级。降级后的处理⽅案有:默
认值(⽐如库存服务挂了,返回默认现货)、兜底数据(⽐如⼴告挂了,返回提
前准备好的⼀些静态⻚⾯)、缓存(之前暂存的⼀些缓存数据)
4. 限流降级:当我们去秒杀或者抢购⼀些限购商品时,此时可能会因为访问量太⼤
⽽导致系统崩溃,此时开发者会使⽤限流来进⾏限制访问量,当达到限流阀值,
后续请求会被降级;降级后的处理⽅案可以是:排队⻚⾯(将⽤户导流到排队⻚
⾯等⼀会重试)、⽆货(直接告知⽤户没货了)、错误⻚(如活动太⽕爆了,稍
后重试)
|