【Java高级工程师蜕变之路】068 分布式服务治理之服务降级

服务降级

什么是服务降级

在服务器压力剧增的情况下,对一些服务和页面进行有策略的不处理或者换种简单的方式处理,从而释放服务器资源以保证核心服务正常运作或者高效运作。

image-20220412102051842

当架构整体的负载超过了预设的上线阈值,或者即将到来的流量预计将会超过预设的阈值时,为了保证重要的基本服务能够正常运行,可以将一些不重要或者不紧急的服务或任务进行延迟使用或者暂停使用。

降级策略

当触发服务降级时,新的请求到达时,怎么处理?可以从,微服务,分布式架构的全局来确定降级解决方案:

  • 页面降级-可视化页面禁用点击按钮,调整静态页面
  • 延迟服务-定时任务延迟处理、消息入MQ后延迟处理
  • 写降级-直接禁止相关写操作的服务请求
  • 读降级-直接禁止相关读的服务请求
  • 缓存降级-使用缓存来解决部分读频繁的服务接口

针对后端代码的降级处理:

  • 抛异常
  • 返回NULL
  • 调用Mock数据
  • 调用Fallback处理逻辑

分级降级

结合服务能否降级的优先原则,可以做类似台风的分级处理:

image-20220412103753606