| 1234567891011121314151617181920212223242526272829303132333435363738394041424344454647484950515253545556575859606162636465666768697071727374757677 |
- package com.tzy.elasticsearch.config;
- import org.apache.http.HttpHost;
- import org.elasticsearch.client.RestClient;
- import org.elasticsearch.client.RestClientBuilder;
- import org.elasticsearch.client.RestHighLevelClient;
- import org.springframework.beans.factory.annotation.Value;
- import org.springframework.context.annotation.Bean;
- import org.springframework.context.annotation.Configuration;
- import org.springframework.data.elasticsearch.config.AbstractElasticsearchConfiguration;
- import javax.annotation.PostConstruct;
- import java.util.ArrayList;
- import java.util.List;
- //@Configuration
- public class RestClientConfig extends AbstractElasticsearchConfiguration {
- // @Value("${elasticsearch.rest.uris}")
- private String uris;
- @Bean
- public RestHighLevelClient buildRestHighLevelClient() {
- return elasticsearchClient();
- }
- /**
- * 防止netty的bug
- * java.lang.IllegalStateException: availableProcessors is already set to [4], rejecting [4]
- */
- @PostConstruct
- void init() {
- System.setProperty("es.set.netty.runtime.available.processors", "false");
- }
- @Override
- public RestHighLevelClient elasticsearchClient() {
- // 拆分地址
- List<HttpHost> hostLists = new ArrayList<>();
- String[] hostArray = uris.split(",");
- for (String addr : hostArray) {
- String host = addr.split(":")[0];
- String port = addr.split(":")[1];
- hostLists.add(new HttpHost(host, Integer.parseInt(port), "http"));
- }
- // 转换成 HttpHost 数组
- HttpHost[] httpHosts = hostLists.toArray(new HttpHost[]{});
- // 构建连接对象
- RestClientBuilder builder = RestClient.builder(httpHosts);
- // 设置用户名、密码
- /*CredentialsProvider credentialsProvider = new BasicCredentialsProvider();
- credentialsProvider.setCredentials(AuthScope.ANY,new UsernamePasswordCredentials(userName,password));*/
- // 连接延时配置
- /*builder.setRequestConfigCallback(requestConfigBuilder -> {
- requestConfigBuilder.setConnectTimeout(connectTimeOut);
- requestConfigBuilder.setSocketTimeout(socketTimeOut);
- requestConfigBuilder.setConnectionRequestTimeout(connectionRequestTimeOut);
- return requestConfigBuilder;
- });*/
- // 连接数配置
- /*builder.setHttpClientConfigCallback(httpClientBuilder -> {
- httpClientBuilder.setMaxConnTotal(maxConnectNum);
- httpClientBuilder.setMaxConnPerRoute(maxConnectNumPerRoute);
- httpClientBuilder.setDefaultCredentialsProvider(credentialsProvider);
- return httpClientBuilder;
- });*/
- return new RestHighLevelClient(builder);
- /*final ClientConfiguration clientConfiguration = ClientConfiguration.builder()
- .connectedTo(uri)
- .build();
- return RestClients.create(clientConfiguration).rest();*/
- }
- }
|