【发布时间】:2019-11-28 18:55:35
【问题描述】:
我正在使用 RestHighLevelClient 7.2 版连接到 ElasticSearch 集群 7.2 版。我的集群有 3 个主节点和 2 个数据节点。数据节点内存配置:2 核和 8 GB。我已经习惯在我的 Spring Boot 项目中使用下面的代码来创建 RestHighLevelClient 实例。
@Bean(destroyMethod = "close")
@Qualifier("readClient")
public RestHighLevelClient readClient(){
final CredentialsProvider credentialsProvider = new BasicCredentialsProvider();
credentialsProvider.setCredentials(AuthScope.ANY,
new UsernamePasswordCredentials(elasticUser, elasticPass));
RestClientBuilder builder = RestClient.builder(new HttpHost(elasticHost, elasticPort))
.setHttpClientConfigCallback(httpClientBuilder ->httpClientBuilder.setDefaultCredentialsProvider(credentialsProvider).setDefaultIOReactorConfig(IOReactorConfig.custom().setIoThreadCount(5).build()));
builder.setRequestConfigCallback(requestConfigBuilder -> requestConfigBuilder.setConnectTimeout(30000).setSocketTimeout(60000)
);
RestHighLevelClient restClient = new RestHighLevelClient(builder);
return restClient;
}
RestHighLevelClient 是一个单例 bean。我间歇性地收到带有 GET 和 PUT 请求的 SocketTimeoutException 。索引大小约为 50 MB。我尝试增加套接字超时值,但仍然收到相同的错误。我错过了一些配置吗?任何帮助将不胜感激。
【问题讨论】:
标签: elasticsearch elastic-stack