Skip to content

v1.0.6

Compare
Choose a tag to compare
@bunnier bunnier released this 19 Jul 15:45
· 17 commits to main since this release

提供能简单处理服务熔断逻辑的工具包。

本工具包主要通过Command对象交互,可通过circuit.NewCommand 函数获取一个 Command对象,通过该对象的Execute方法即可在熔断器上执行设置的功能函数。

初始化 Command 时可设置熔断器算法,熔断器的主接口为Breaker,包中目前内置了两个熔断器供选择:

  • CutBreaker(默认):提供了常规的断路器模式的熔断器实现。即维护 Openhalf-OpenClosed 3个状态,错误率达到阈值后OpenOpen后休眠指定时间转变为half-Open,之后允许一个请求探测,如恢复正常,则Closed,反之重新进入Open
  • SreBreaker:提供了Google SRE提出的 adaptive throttling 算法实现的自适应熔断器。算法介绍参考:https://sre.google/sre-book/handling-overload/#eq2101