@Configuration
public class ElasticsearchConfig {
@Value("${es.elasticsearch.hostlist}")
private String hostlist;
//创建连接客户端
@Value("${es.elasticsearch.username}")
private String username;
@Value("${es.elasticsearch.password}")
private String password;
@Bean
public RestHighLevelClient restHighLevelClient(){
final CredentialsProvider credentialsProvider = new BasicCredentialsProvider();
credentialsProvider.setCredentials(AuthScope.ANY, new UsernamePasswordCredentials(username,password));
//解析hostlist配置信息
String[] split = hostlist.split(",");
//创建HttpHost数组,其中存放es主机和端口的配置信息
HttpHost[] httpHostArray = new HttpHost[split.length];
for(int i=0;i<split.length;i++){
String item = split[i];
httpHostArray[i] = new HttpHost(item.split(":")[0], Integer.parseInt(item.split(":")[1]), "http");
}
//创建RestHighLevelClient客户端 并设置超时时间
RestClientBuilder builder = RestClient.builder(httpHostArray)
.setHttpClientConfigCallback(httpClientBuilder -> httpClientBuilder
.setDefaultCredentialsProvider(credentialsProvider))
.setRequestConfigCallback(requestConfigBuilder -> requestConfigBuilder
.setSocketTimeout(1000*60*15)
.setConnectTimeout(1000*60*15));
return new RestHighLevelClient(builder);
}
}
连接elasticsearch,并设置超时时间
最新推荐文章于 2024-10-11 19:28:01 发布