降级策略
目录
引言
由于最近在看一些关于电商业务相关的东西,经常看到降级策略这个词,在查找了一些资料后稍微有了一些了解,在此记录一下学到的东西。
概念
按照我的理解,降级策略就是在线上出现突发状况,业务逻辑无法完整运行的情况下,跳过某些非必须的业务,忽略一些影响较小的异常报错,使得主要业务能够顺利进行而采取的一种手段。
使用降级策略的意义
当处于某些特定的业务场景下,比如促销活动,注册引流时,服务器可能会无法承载过高的并发流量,导致响应超时,性能下降;服务器出现突发故障时,某些业务无法顺利进行;由于网络或其他原因导致接口响应时间过长或相应失败;
在出现这些情况时,系统将无法保证核心业务的正常运转,为了避免这些情况的发生,就要用到降级策略。
使用降级策略
降级策略一般在设计架构时直接加入到代码中,遇到触发场景时自动降级,但如果提前预知到巨大的流量冲击,也可以提前关闭一些非必须业务,主动进行降级。
下面介绍几种比较简单的降级策略:
1.使用旧数据
有的地方会用到实时更新的数据,当更新失败,没有获取到返回数据时,可以直接使用旧数据作为返回。比如访问某些网页时 ,如果刷新页面后没有获取到数据,可以使用之前的作为代替。
2.使用默认值
提前设置一个默认的返回值,在接口调用失败时将默认值作为返回值,最常见的场景:设置一个访问失败页面,在访问失败时展示该页面。
3.放弃或跳过请求
设置一个超时时间,当响应时间过长时直接放弃请求;请求失败后,记录日志,但不报错影响正常业务运行。
除此之外,还有很多方法,适用于不同的业务场景,就不一一列举了。
总结
谁都不能保证意外不会发生,因此,为了最大程度上保证核心业务正常运行,同时不影响用户体验,降级策略是非常有必要的。但同时,降级策略对设计者的要求也很高,必须要对业务有全面详尽的了解,能够精确地评估每种降级策略对业务的影响,不至于影响正常业务。
参考文章
1.分布式系统降级策略,风度玉门,https://blog.csdn.net/fouy_yun/article/details/81026596
2.微服务架构下如何正确的选择降级策略保障服务高可用,雷问,https://www.jianshu.com/p/84ded750cdee