在京东我们是如何做服务降级的

本文介绍了京东在面对服务性能问题时如何进行服务降级,包括手动和自动生效的降级方案。通过预先设定的阈值和异常处理手册,确保关键流程如下单和支付的正常运行,而对于非核心流程则采取简化功能或关闭服务。此外,文中强调了降级策略的周知、事务补偿、入口隐藏等注意事项,以及紧急扩容措施。
摘要由CSDN通过智能技术生成

当我们依赖的中间件资源或者是上游服务性能出现严重问题时,为了防止用户看到错误页面或者加载页面时间过长,我们需要将服务降级静态页面。或者将不影响主流程的旁路服务关闭掉,以让出资源给主要流程。这类操作称为降级。服务降级方案有三种方式,降低一致性、减少非必要功能、简化功能,后面我会分别举例说明。

想要做好降级的前提是,提前压测得出指标上限,还有提前梳理好系统的性能制约点,比如依赖的服务响应超时时间和基础负载性能(比如CPU使用率),并纳入监控范围。当前提就绪后,我们就开始编写异常降级操作手册,包括托底预案,描述好当发生什么样的场景时,每一步做什么,它的预期结果是什么,还有是否演练过,只有经过真枪实弹考验的士兵才是好士兵。最后一点,我们会特别注意的,降级方案是手动生效还是自动生效的,它和止损息息相关。

先来看看手动生效。手动生效意味需要当有人反馈或者监控发现有异常后,手动修改配置中心的值,使得提前准备的降级预案生效。比如正常情况下我们会先读缓存,如果缓存中没有就尝试从数据库读取,服务降级后,当缓存无法命中时,直接返回默认值,简化功能。不过需要注意,有些情况操作生效时间不是实时的,客户端会缓存第一次加载的配置,然后每隔一段时间就同步一次,甚至需要重启APP才能生效,必要性只能让客服引导用户重启APP。

再来看看自动生效。一般做法是,在接口定义时

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值