测验:韧性
断路器处于 OPEN 状态时会做什么?
- 更加频繁地重试
- 把请求积压到队列里
- 不尝试调用,立即返回失败
- 把请求路由到其他实例
若将 HTTP 400 计入断路器故障,会发生什么?
- 4xx 会自动排除,因此没有影响
- 故障样本增多,使故障率更准确
- 客户端错误可能触发断路,连正常流量也被拦截
- 400 不会重试,因此重试次数下降
如果将 permittedNumberOfCallsInHalfOpenState 设为 1,会怎样?
- 只进行一次探测,因此能更快恢复 CLOSED
- 半开状态记录更少调用,可节约内存
- 样本固定为一个,使故障率更精确
- 一次探测的偶然失败就可能重新进入 OPEN,产生状态抖动
“加了断路器却一次都没打开”最常见的原因是什么?
- 故障率阈值设置得过低
- minimumNumberOfCalls 过高,统计窗口始终凑不够调用次数
- 调用没有超时,因此故障无法统计
- 没有降级方案,异常直接向上传递
重试与断路器一起使用时,哪种嵌套方式正确?
- 把重试放在断路器内侧:所有重试完成后再由断路器判定
- 把断路器放在重试内侧:断路器为 OPEN 时重试调用也会被立即拦截
- 两者完全分离,互不感知
- 顺序没有影响
哪一种断路器降级响应不合适?
- 直接返回 null
- 返回缓存中的旧值
- 返回只包含关键字段的简化响应
- 返回带说明信息的 503