@Bean(destroyMethod = "close") public RestHighLevelClient init() { HttpHost[] httpHost; httpHost = new HttpHost[model.getHosts().size()]; HttpHost[] finalHttpHost = httpHost; final int[] i = {0}; model.getHosts().forEach(hostPort -> { finalHttpHost[i[0]] = new HttpHost(String.valueOf(hostPort.getHost()), hostPort.getPort(), "http"); i[0] = i[0] + 1; }); RestClientBuilder builder = RestClient.builder(finalHttpHost); if (model.getUsername() != null && model.getPassword() != null) { final CredentialsProvider credentialsProvider = new BasicCredentialsProvider(); credentialsProvider.setCredentials(AuthScope.ANY, new UsernamePasswordCredentials(model.getUsername(), model.getPassword())); builder.setHttpClientConfigCallback(httpClientBuilder -> httpClientBuilder.setDefaultCredentialsProvider(credentialsProvider)); } // Cấu hình timeout builder.setRequestConfigCallback(requestConfigBuilder -> requestConfigBuilder .setSocketTimeout(model.getSocketTimeout()) .setConnectTimeout(model.getConnectTimeout())); return new RestHighLevelClient(builder); }