首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >电路又是如何关闭的?

电路又是如何关闭的?
EN

Stack Overflow用户
提问于 2018-07-20 01:30:02
回答 2查看 2.8K关注 0票数 6

我在试着理解Hystrix。我理解当服务调用第三方服务时,该服务没有响应,并且超过了配置的阈值,电路将被打开,接着呼叫将短路。

但我无法理解电路是如何再次关闭的。让我们假设我们的服务是打电话给第三方服务,而该服务不能正常工作,因此电路打开。5分钟后,该服务已开始正常工作,现在电路应该关闭。呼叫服务怎么知道这一点,第三方服务已经开始表现良好,现在线路应该关闭吗?

EN

回答 2

Stack Overflow用户

回答已采纳

发布于 2018-07-20 13:01:32

实际上有三种状态:打开、关闭和HALF_OPEN。一旦断路器打开,并有一定的时间已经过去,它允许一个单一的请求偷偷通过。这是HALF_OPEN状态。如果成功,断路器是关闭的,否则它会返回到打开状态,直到这段时间再次通过,在那里它再次进入HALF_OPEN状态。可以使用HALF_OPEN属性指定打开到circuitBreaker.sleepWindowInMilliseconds的转换之间的时间量。

票数 10
EN

Stack Overflow用户

发布于 2018-07-23 09:12:30

考虑到Hytrix断路器从封闭到开放的过渡.它短路了所有对断路器提出的要求。

经过一定的时间(HystrixCommandProperties.circuitBreakerSleepWindowInMilliseconds()),下一个请求就可以通过了(这是半开放状态)。

如果请求失败,则断路器在睡眠窗口的持续时间内返回到打开状态。因此,这个半开状态调用决定了是打开还是关闭电路。

如果请求成功,断路器将过渡到关闭,1中的逻辑再次接管。结帐舌吻工作。

票数 1
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/51433860

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档