面试题答案
一键面试熔断策略
- 使用断路器模式:在用户服务与基础数据服务之间、基础数据服务与数据库服务之间引入断路器。断路器有三种状态:关闭(Closed)、打开(Open)和半打开(Half - Open)。
- 统计失败请求:在关闭状态下,断路器统计一定时间窗口内请求失败的次数或失败率。例如,统计最近100次请求中失败的数量。
触发条件
- 失败率触发:如果失败请求的比例超过设定阈值(如50%),断路器从关闭状态切换到打开状态。例如,在100次请求中有50次以上失败,触发熔断。
- 连续失败次数触发:连续一定数量(如10次)的请求失败,也触发熔断,将断路器切换到打开状态。
熔断恢复机制设计思路
- 半打开状态:断路器打开一段时间(如10秒)后,进入半打开状态。在半打开状态下,断路器允许一定数量(如5次)的试探性请求通过。
- 成功恢复:如果试探性请求大部分(如80%以上)成功,说明底层服务可能已经恢复,断路器切换回关闭状态,恢复正常请求。
- 失败重试:如果试探性请求中失败比例较高(如超过20%),断路器重新回到打开状态,继续熔断一段时间,然后再次进入半打开状态进行试探。