Java 请求线程中的断路器 运行

Java circuit breaker running in request thread

一直在考虑Netflix OSS的断路器方案-Hystrix。

一切听起来不错,但我认为在不同的线程中使用命令 运行 在我的用例场景中没有意义。

那是因为我的请求处理程序完成的工作在调用远程服务之前只需要很少的计算。另外,在等待响应的过程中我无能为力。

伪代码示例:

@post("/令牌") 令牌(@body authResult){ 验证 authResult 从 authResult 获取 id 调用远程服务获取 authz 令牌 Return 授权令牌 }

我想使用 hystrix 进行远程调用,但我认为在单独的线程中执行命令没有意义,因为无论如何我都会被阻止。

有什么建议吗?是否可以 运行 hystrix 命令与调用者在同一个线程中?

如果您使用 SEMAPHORE 作为执行隔离策略,Hystrix 命令可以 运行 在调用线程上

https://github.com/Netflix/Hystrix/wiki/How-it-Works#semaphores https://github.com/Netflix/Hystrix/wiki/Configuration#thread-or-semaphore