熔断器是什么?熔断器的状态有哪些?熔断器的设计重点有哪些?
打卡Day17:今天学习了《48|弹力设计篇之“熔断设计”》,我的收获如下:
熔断器 Circuit Breaker
灵感来源于电闸上的保险丝,当电压有问题时自动跳闸,电路被断开,电器受到保护。
熔断器设计
- 防止应用不断地尝试执行可能会失败的操作,使得应用继续执行而不用等待修正错误,或者浪费CPU时间去等待长时间的超时产生;
- 诊断错误是否已经修正,确认修正后会再次尝试调用操作。
熔断器的状态
- 闭合(Close),正常;
- 断开(Open),故障;
- 半开(Half-Open),故障后检测是否恢复。
熔断器设计重点
- 错误类型
- 日志监控
- 定期健康检查
- 手动重置
- 无锁计数
- 分区熔断
- 重试错误的请求
熔断器的一个开源实现
Netflix的Hystrix。