elasticsearch 访问ES服务器 超时问题记录
项目场景:
使用es实现简单查询要求仍会超时
问题描述:
使用RestHighLevelClient初始化后 首次以及长时间停止访问ES会超时
原因分析:
长时间停止ES访问后,与es服务器建立的HTTP连接死掉,需要重新建立连接
解决方案:
builder.setHttpClientConfigCallback(httpClientBuilder -> {
httpClientBuilder.setMaxConnTotal(MAX_CONN_TOTAL);
httpClientBuilder.setMaxConnPerRoute(MAX_CONN_PER_ROUTE);
httpClientBuilder.setKeepAliveStrategy((response, context) -> Duration.ofMinutes(5).toMillis());
httpClientBuilder.disableAuthCaching();
httpClientBuilder.setDefaultCredentialsProvider(credentialsProvider);
return httpClientBuilder;
});
增加
httpClientBuilder.setKeepAliveStrategy((response, context) -> Duration.ofMinutes(5).toMillis());
配置,保持client 每 5分钟 发送数据保持http存活