美文网首页
分布式弹力设计之熔断

分布式弹力设计之熔断

作者: Doit8 | 来源:发表于2018-04-08 22:26 被阅读0次

    前言

    熔断机制的灵感来源于保险丝,我们知道家里的电路中有个保险丝,当用电过载或是短路时,保险丝熔断,切断电路,避免发生损坏电器甚至引起火灾。分布式的熔断机制也是如此,当服务超载时可以保护系统,防止系统被拖垮。

    熔断的原理

    熔断机制通过状态机实现,包含三种状态。

    1 断开状态,在此状态下,请求可以正常通过,同时会有一个计数器记录请求成功与失败的数量,当某个时间段内,失败的比例大于某阀值,切换到打开状态,同时启动计时器,这时所有的请求直接返回错误或是走降级处理。待计时器结束后,切换到半开状态,会透过一部分请求,若有请求成功,说明后段服务已恢复,将状态置为断开状态。否则置为打开状态,并且重置计时器。

    2 半开状态,此状态下有一部分请求可以通过,根据请求的结果来决定切换的状态。

    3 打开状态,所有的请求直接返回错误,如果有配置降级策略,则会执行降级处理。

    熔断的设计要点

    1 错误类型,重试机制中我们提到需要判断错误类型,有的错误重试没有意义只会加重服务的负担,例如业务的异常。熔断机制也一样,如果错误类型是服务已挂,那么可以直接打开熔断,减少后续请求的阻塞时间。

    2 日志记录,所有进入熔断的请求都要记录下来

    3 熔断器定时ping后段健康检查服务,好处在于,服务恢复正常时,不需要真实的请求来触发关闭熔断。

    4 提供手工关闭熔断的运维工具

    相关文章

      网友评论

          本文标题:分布式弹力设计之熔断

          本文链接:https://www.haomeiwen.com/subject/xmqvhftx.html