一.初始化es
public void initES() {
/*LOGGER.info("host" + host);
LOGGER.info("port" + port);
LOGGER.info("scheme" + scheme);
LOGGER.info("userName" + userName);
LOGGER.info("password" + password);*/
// 客户端连接创建
/* HttpHost[] httpHosts = Arrays.stream(host.split("\\|")).map(hostM -> {
return new HttpHost(hostM, port, scheme);
}).collect(toList()).toArray(new HttpHost[]{}); */
HttpHost[] httpHosts = Arrays.stream(host.split("\\|")).map(hostM -> {
return new HttpHost(hostM, port, scheme);
}).toArray(HttpHost[]::new);
final CredentialsProvider credentialsProvider = new BasicCredentialsProvider();
credentialsProvider.setCredentials(AuthScope.ANY, new UsernamePasswordCredentials(userName, password));
RestClientBuilder builder = RestClient.builder(httpHosts).setRequestConfigCallback(new RestClientBuilder.RequestConfigCallback() {
@Override
public RequestConfig.Builder customizeRequestConfig(RequestConfig.Builder requestConfigBuilder) {
requestConfigBuilder.setConnectTimeout(connectTimeout);
requestConfigBuilder.setSocketTimeout(socketTimeout);
requestConfigBuilder.setConnectionRequestTimeout(requestTimeout);
return requestConfigBuilder;
}
}).setHttpClientConfigCallback(new RestClientBuilder.HttpClientConfigCallback() {
@Override
public HttpAsyncClientBuilder customizeHttpClient(HttpAsyncClientBuilder httpClientBuilder) {
httpClientBuilder.disableAuthCaching();
httpClientBuilder.setMaxConnTotal(maxConnectUum); //最大连接总数
httpClientBuilder.setMaxConnPerRoute(maxConnectRoute); //每条线路的最大连接数
httpClientBuilder.setKeepAliveStrategy((response, context) -> Duration.ofMinutes(4).toMillis());
return httpClientBuilder.setDefaultCredentialsProvider(credentialsProvider);
}
});
restHighLevelClient = new RestHighLevelClient(builder);
LOGGER.info("ElasticsearchClient初始化成功, 服务集群数量: " + httpHosts.length);
LOGGER.info("ElasticsearchClient初始化成功............");
}
二.定义bean
init-method="initES"