public static RestHighLevelClient getRestHighLevelClient() {
String clusterNodes = PropertyUtil.getProperty("spring.data.elasticsearch.cluster-nodes");
String username = PropertyUtil.getProperty("spring.data.elasticsearch.properties.username");
String password = PropertyUtil.getProperty("spring.data.elasticsearch.properties.password");
final CredentialsProvider credentialsProvider = new BasicCredentialsProvider();
credentialsProvider.setCredentials(AuthScope.ANY,
new UsernamePasswordCredentials(username, password));
try {
String[] urlList = clusterNodes.split(",");
HttpHost[] nodes = new HttpHost[urlList.length];
for (int i = 0; i < urlList.length; i++) {
URL url = new URL(urlList[i]);
HttpHost node = new HttpHost(url.getHost(), url.getPort(), url.getProtocol());
nodes[i] = node;
}
return new RestHighLevelClient(RestClient.builder(nodes)
.setHttpClientConfigCallback(
httpClientBuilder -> httpClientBuilder.setDefaultCredentialsProvider(credentialsProvider)).setMaxRetryTimeoutMillis(20*60*1000));//设置超时时间
} catch (MalformedURLException e) {
logger.error("解析URL格式失败", e);
}
return null;
}