当 Hystrix 因超时而离开并且服务器响应任何结果时会发生什么?

What happens when Hystrix walks away cause of a timeout, and server responds with any result?

例如,我在我的服务客户端上启用Hystrix,使用另一个服务服务器。我将 Hystrix 超时设置为 5 秒。 5 秒后,如果服务器没有响应,Hystrix 将超时并调用 fallback。如果服务器在 Hystrix 超时并离开该调用后响应,会发生什么情况?

https://github.com/Netflix/Hystrix/wiki/How-it-Works#isolation

一旦 Hystrix 超时触发,Hystrix 将发送 Thread.interrupt() 到调用的客户端。根据您在 Hystrix 命令中实现的内容,这可能会或可能不会对中止调用的客户端产生影响。这 can be configuredexecution.isolation.thread.interruptOnTimeout.

服务器部分通常会继续运行。如果您的呼叫客户端没有中止,它将收到结果。但是结果不会传递给 Hystrix 命令的调用者。它将被丢弃。