es初始化

发布于:2024-06-04 ⋅ 阅读:(157) ⋅ 点赞:(0)

一.初始化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"