我正在尝试了解 Hystrix。我了解当服务调用 3rd 方服务并且该服务没有响应并且阈值已超过配置时,电路将被打开并且继续调用将被短路。
但我无法理解电路是如何再次闭合的。让我们假设我们的服务正在调用 3rd 方服务,并且该服务无法正常工作,因此电路已打开。 5 分钟后,该服务开始正常工作,现在电路应该关闭。调用服务如何知道第 3 方服务已经开始正常运行,现在应该关闭?
最佳答案
实际上存在三种状态:OPEN、CLOSED 和 HALF_OPEN。一旦断路器打开并且经过了一定的时间,它就会让单个请求潜入。这是 HALF_OPEN 状态。如果成功,断路器闭合,否则它返回到 OPEN 状态,直到再次过去该时间量,在那里它再次进入 HALF_OPEN 状态。您可以使用 circuitBreaker.sleepWindowInMilliseconds 属性指定从 OPEN 到 HALF_OPEN 的转换之间的时间量。
关于architecture - 怎么电路又闭合了?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/51433860/