即使外部系统重新联机,Hystrix电路也始终处于打开状态

时间:2017-08-07 12:35:52

标签: java hystrix

我们为我们的应用添加了一些外部系统。我们正在使用Hystrix命令使用apache http客户端库执行远程REST调用。

我们遇到的问题是,对于一个外部服务器电路始终处于打开状态,我们会获得默认回退。减少睡眠窗口并没有真正帮助

public Command(CloseableHttpClient httpClient, HttpRequestBase httpRequest) {
        super(Setter.withGroupKey(HystrixCommandGroupKey.Factory.asKey("MyServer"))
                .andThreadPoolKey(HystrixThreadPoolKey.Factory
                        .asKey(ServerManager.WorkManager.name())));
        ConfigurationManager.getConfigInstance().setProperty(
                "hystrix.command.Command.execution.isolation.thread.timeoutInMilliseconds",
                getExecutionTimeout());
        ConfigurationManager.getConfigInstance().setProperty(
                "hystrix.command.Commad.circuitBreaker.sleepWindowInMilliseconds",
                getIgnoreTimeout());

        this.httpRequest = httpRequest;
        this.httpClient = httpClient;
}

对于其他系统,断路器按预期工作。 试图重新启动应用服务器,即使断路器似乎已打开。

是否存在边缘情况或其他情况?或者Hystrix命令应该以不同的方式处理?

1 个答案:

答案 0 :(得分:0)

问题不在于Hystrix而是与http连接泄漏有关。 Http连接没有被释放回池中。因此存在连接泄漏。