熔断器是什么?熔断器的状态有哪些?熔断器的设计重点有哪些?

打卡Day17:今天学习了《48|弹力设计篇之“熔断设计”》,我的收获如下:

熔断器 Circuit Breaker

灵感来源于电闸上的保险丝,当电压有问题时自动跳闸,电路被断开,电器受到保护。

熔断器设计

  • 防止应用不断地尝试执行可能会失败的操作,使得应用继续执行而不用等待修正错误,或者浪费CPU时间去等待长时间的超时产生;
  • 诊断错误是否已经修正,确认修正后会再次尝试调用操作。

熔断器的状态

  1. 闭合(Close),正常;
  2. 断开(Open),故障;
  3. 半开(Half-Open),故障后检测是否恢复。

熔断器设计重点

  • 错误类型
  • 日志监控
  • 定期健康检查
  • 手动重置
  • 无锁计数
  • 分区熔断
  • 重试错误的请求

熔断器的一个开源实现

Netflix的Hystrix。

左耳朵耗子带你重学《左耳听风》

https://time.geekbang.org/column/article/4241