gpt4 book ai didi

java - JestClient 在闲置一段时间后抛出 SocketTimeoutException

转载 作者:搜寻专家 更新时间:2023-10-31 20:25:28 25 4
gpt4 key购买 nike

我正在使用 JEST 连接到 spring-boot 应用程序中的 elasticsearch。当应用程序空闲(不向 elasticsearch 发送任何请求)一段时间后,JestClient 将抛出 SocketTImeoutException。我正在使用 bean 创建客户端:

@Bean
public JestClient client() throws Exception {
JestClientFactory factory = new JestClientFactory();
factory.setHttpClientConfig(new HttpClientConfig
.Builder(esURL)
.multiThreaded(true)
.connTimeout(60000)
.readTimeout(60000)
.defaultMaxTotalConnectionPerRoute(10)
.maxTotalConnection(100).build());
return factory.getObject();
}

这里有什么我遗漏的吗?

最佳答案

我会尝试的一个想法:研究这个功能 - https://github.com/searchbox-io/Jest/pull/149 - 意思是,配置 maxConnectionIdleTime 以便空闲连接在实际使用之前被终止(这将导致您获得超时异常)。测试本身的一个例子:https://github.com/searchbox-io/Jest/blob/v2.0.4/jest/src/test/java/io/searchbox/client/JestClientFactoryIntegrationTest.java#L116

关于用于它的值,我不确定网络套接字的超时时间是多少……猜测是 30 秒。无论您为 maxConnectionIdleTime 设置什么,它都应该小于该值。也许尝试从超时中观察你得到哪些空闲时间保护你,哪些不保护你。

关于java - JestClient 在闲置一段时间后抛出 SocketTimeoutException,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/48236832/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com