pkg*_*lli 5 java spring javabeans elasticsearch jest
我正在使用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();
}
Run Code Online (Sandbox Code Playgroud)
我在这里想念什么吗?
我会尝试的一个想法:研究这个功能 - 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它都应该小于这个值。也许尝试从超时中观察哪些空闲时间可以保护你,哪些不能。
| 归档时间: |
|
| 查看次数: |
1954 次 |
| 最近记录: |