之前在京东的技术交流会上,京东架构师分享了服务降级策略
1为什么使用服务降级
在618店庆、双十一购物节等大型活动中,系统压力非常大,这个时候最重要的就是系统的可用性和稳定性
对于非必要的功能服务,都可以通过降级的方式暂时停掉,等到系统压力平稳后在升到可用
例如在交易下单环节,推荐服务就不是核心功能,可以降级为暂停,让出系统资源来保证核心服务
2服务降级的维度
(1)页面降级
比如下单后的成功页面挂了,那么就直接跳转到订单中心,用户可以看到订单,也可以操作
如果订单中心也挂了,那么就直接跳转到订单详情页面
(2)业务功能模块降级
例如实时价格的查询显示,业务上允许不那么实时,就可以降级
例如首页上有很多动态的内容,是后面大量的服务计算出来的,在访问高峰,动态页面扛不住时,可以降级为之间准备好的静态页面,虽然没动态的页面好,但保证了用户可用
(3)远程服务降级
比如第三方物流系统也可能压力大出现问题,业务上又是非必须的,就可以降级,当恢复可用时再次调用
3服务降级的实现
(1)手动实现
使用开关配置,对系统中可降级的服务都设置好开关项,在大型活动之前,挑选出需要降级的服务,提前关闭
(2)自动实现
程序调用时发生问题时,自动降级
或者调用某服务时,响应时间超过预订阀值,自动降级