日志中心迁移elasticsearch
https://www.elastic.co/guide/cn/elasticsearch/guide/current/_indexing_employee_documents.html
1.引入依赖
pom.xml
<dependency>
<groupId>org.elasticsearch</groupId>
<artifactId>elasticsearch</artifactId>
<version>6.6.0</version>
</dependency>
<dependency>
<groupId>org.elasticsearch.client</groupId>
<artifactId>elasticsearch-rest-high-level-client</artifactId>
<version>6.6.0</version>
</dependency>
2、ElasticsearchCmbsConfig装配RestHighLevelClient
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.Autowired;
import org.springframework.context.annotation.Bean;
import org.springframework.context.annotation.Configuration;
/**
* 类作用: Elasticsearch配置类
* 类名称: ElasticsearchMonitorConfig
* 类描述: Elasticsearch配置类
*/
@Configuration
public class ElasticsearchMonitorConfig {
@Autowired
private ElasticsearchMonitorProperties esProperties;
@Bean
public RestHighLevelClient restHighLevelClient() {
String[] urlArr = esProperties.getEsAddress().split(",");
HttpHost[] httpPostArr = new HttpHost[urlArr.length];
for (int i = 0; i < urlArr.length; i++) {
HttpHost httpHost = new HttpHost(urlArr[i].split(":")[0].trim(),
Integer.parseInt(urlArr[i].split(":")[1].trim()), "http");
httpPostArr[i] = httpHost;
}
RestClientBuilder builder = RestClient.builder(httpPostArr);
// 异步httpclient连接延时配置
builder.setRequestConfigCallback(requestConfigBuilder -> {
requestConfigBuilder.setConnectTimeout(esProperties.getConnectTimeOut());
requestConfigBuilder.setSocketTimeout(esProperties.getSocketTimeOut());
requestConfigBuilder.setConnectionRequestTimeout(esProperties.getConnectionRequestTimeOut());
return requestConfigBuilder;
});
// 异步httpclient配置
builder.setHttpClientConfigCallback(httpClientBuilder -> {
// httpclient连接数配置
httpClientBuilder.setMaxConnTotal(esProperties.getMaxConnectNum());
httpClientBuilder.setMaxConnPerRoute(esProperties.getMaxConnectPerRoute());
return httpClientBuilder;
});
return new RestHighLevelClient(builder);
}
}
3、ElasticsearchMonitorProperties
import lombok.Data;
import org.springframework.boot.context.properties.ConfigurationProperties;
import org.springframework.stereotype.Component;
@Component
@ConfigurationProperties(prefix = "elasticsearch")
@Data
public class ElasticsearchMonitorProperties {
/**
* esAddress.
*/
private String esAddress;
/**
* 连接超时时间
*/
private int connectTimeOut;
/**
* 连接超时时间
*/
private