# 背景

保证服务调用方线程不被长时间,不必要的占用,避免故障在微服务系统中蔓延,防止系统雪崩效应

# 目标

  • 保护线程资源
  • 快速失败机制
  • 提供降级方案
  • 防止故障扩散:熔断
  • 监控功能

# 能力

线程池隔离

信号量隔离

熔断

降级回退

# 降级

场景:程序运行异常,服务超时,熔断器打开状态,线程池资源耗尽

  1. 压力剧增,根据业务及流量,对不重要不紧急服务有策略的进行不处理或简单处理,释放服务器资源以保证核心服务正常
  2. 服务不可用时,主动执行备用降级逻辑,保证主体业务不受影响

# 熔断

状态:

  1. 熔断关闭
  2. 熔断开启:接口调用出错比率到一个阈值(默认50%),进行熔断开启状态,后续调用切断执行本地降级方法
  3. 半熔断:开启熔断一段时间后,尝试恢复服务调用方对服务的调用,允许部分请求调用服务,监控成功率,如达到预期,则进行熔断关闭状态,否则重新进行关闭状态
参数
metrics.rollingStats.timeInMilliseconds 统计时间窗
circuitBreaker.sleepWindowInMilliseconds 休眠时间窗口,默认5s
circuitBreaker.requestVolumeThreshold 请求总数阀值,默认20
circuitBreaker.errorThresholdPercentage 错误百分比阈值,默认50

# 线程池隔离

优点:

# 参考资料:

上次更新: : 19 days ago