集中管理降级开关
通过推送/拉取机制,将开关同步到各个应用(比如 1 次/s)。
这种需要借助「配置中心」。
读降级
不调用 api,只读本地/分布式缓存,没有数据返回默认数据。
这种需要借助LRU Cache、Redis Cache。
写降级
写场景大多数不能降级。一般解决方法是将同步改成异步,并且将数据写入到 redis,redis 可以给读请求提供数据;由异步任务定时将数据刷到 DB 中。保证的是数据最终一致性。
这种需要借助 MQ、Redis等基础组件。
限流降级
通过限流来限制流量,排队页面、直接告知没有库存、显示错误页。
这种需要借助 Redis 实现 限流算法-漏桶和令牌桶
业务降级
保证核心功能,非核心功能同步改成异步调用。
这种需要判断业务功能优先级,进行取舍。
控制开发前置化
越靠近用户进行拦截,越安全有效,放置流量打到后台 DB。比如在 Nginx 做降级拦截。