确认ES连接信息是否正确,包括URL、用户名和密码。
检查网络是否正常,确保ES服务能够被访问。可以通过ping命令或telnet命令测试是否连接成功。
增加连接超时时间,可以通过以下代码实现:
final CredentialsProvider credentialsProvider = new BasicCredentialsProvider();
credentialsProvider.setCredentials(AuthScope.ANY,
new UsernamePasswordCredentials("username", "password"));
RestClientBuilder builder = RestClient.builder(new HttpHost("localhost", 9200, "http"))
.setHttpClientConfigCallback(new RestClientBuilder.HttpClientConfigCallback() {
@Override
public HttpAsyncClientBuilder customizeHttpClient(HttpAsyncClientBuilder httpClientBuilder) {
//设置连接超时时间
httpClientBuilder.setDefaultCredentialsProvider(credentialsProvider);
return httpClientBuilder.setDefaultRequestConfig(RequestConfig.custom()
.setConnectTimeout(5000)
.setSocketTimeout(60000)
.setConnectionRequestTimeout(1000)
.build());
}
});
RestHighLevelClient client = new RestHighLevelClient(builder);