java客户端操作elasticsearch 7.7.0版本

    <dependency>
        <groupId>org.elasticsearch.client</groupId>
        <artifactId>elasticsearch-rest-client</artifactId>
        <version>7.7.0</version>
    </dependency>

@Configuration
@Slf4j
public class ElasticsearchRestClientConfig {

public static int CONNECT_TIMEOUT_MILLIS = 1000;
public static int SOCKET_TIMEOUT_MILLIS = 30000;
public static int CONNECTION_REQUEST_TIMEOUT_MILLIS = 500;
public static int MAX_CONN_PER_ROUTE = 10;
public static int MAX_CONN_TOTAL = 30;

@Value("${elasticsearch.rest.uri}")
private String uri;

@Bean
public RestClient restClientBuilder() {
    HttpHost[] hosts =httpHost();
    RestClientBuilder builder = RestClient.builder(hosts);
    setConnectTimeOutConfig(builder);
    setMutiConnectConfig(builder);
    return builder.build();
}

@Bean
public HttpHost[] httpHost(){
    String[] split = uri.split(",");
    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");
    }
    return httpHostArray;
}

/**
 * 配置连接时间延时
 */
public void setConnectTimeOutConfig(RestClientBuilder builder){
    builder.setRequestConfigCallback(requestConfigBuilder -> {
        requestConfigBuilder.setConnectTimeout(CONNECT_TIMEOUT_MILLIS);
        requestConfigBuilder.setSocketTimeout(SOCKET_TIMEOUT_MILLIS);
        requestConfigBuilder.setConnectionRequestTimeout(CONNECTION_REQUEST_TIMEOUT_MILLIS);
        return requestConfigBuilder;
    });
}

/**
 * 使用异步httpclient时设置并发连接数
 */
public void setMutiConnectConfig(RestClientBuilder builder){
    builder.setHttpClientConfigCallback(httpClientBuilder -> {
        httpClientBuilder.setMaxConnTotal(MAX_CONN_TOTAL);
        httpClientBuilder.setMaxConnPerRoute(MAX_CONN_PER_ROUTE);
        return httpClientBuilder;
    });
}

}

@Component
@Slf4j
public class BuryPointConsumerListener {

      private static final String INDEX="event";
 
      private static final String _DOC="_doc";
 
      private static final String DOC="doc";
 
      @KafkaListener(topics = "buryPoint")
      public void listen (@Payload QwEvent qwEvent){
          //包装数据
 *         BuryPoint buryPoint=new BuryPoint();
          BeanUtils.copyProperties(qwEvent,buryPoint);
          try {
              String body =INDEX+"/"+_DOC+"/"+UUID.randomUUID().toString().replace("-", "");
              Request request = new Request(HttpMethod.POST.name(), body);
              //将数据写入ES
              JSONObject jsonObject = new JSONObject();
              jsonObject.put(DOC, buryPoint);
              request.setEntity(new NStringEntity(jsonObject.toString(), ContentType.APPLICATION_JSON));
              Response response = restClient.performRequest(request);
 
              log.info("响应结果:"+EntityUtils.toString(response.getEntity()));
 
          } catch (Throwable e) {
              log.error("消费buryPoint异常:"+e.getMessage());
         }
      }
  }

ES使用高级api解决版本不一致问题:

    <dependency>
        <groupId>org.springframework.boot</groupId>
        <artifactId>spring-boot-starter-data-elasticsearch</artifactId>
        <exclusions>
            <exclusion>
                <groupId>org.springframework.data</groupId>
                <artifactId>spring-data-elasticsearch</artifactId>
            </exclusion>
        </exclusions>
    </dependency>
    
    <!-- https://mvnrepository.com/artifact/org.springframework.data/spring-data-elasticsearch -->
    <dependency>
        <groupId>org.springframework.data</groupId>
        <artifactId>spring-data-elasticsearch</artifactId>
        <version>3.2.13.RELEASE</version>
        <exclusions>
            <exclusion>
                <groupId>org.elasticsearch.client</groupId>
                <artifactId>transport</artifactId>
            </exclusion>
            <exclusion>
                <groupId>org.elasticsearch.plugin</groupId>
                <artifactId>transport-netty4-client</artifactId>
            </exclusion>
            <exclusion>
                <!-- https://mvnrepository.com/artifact/org.elasticsearch.client/elasticsearch-rest-high-level-client -->
                    <groupId>org.elasticsearch.client</groupId>
                    <artifactId>elasticsearch-rest-high-level-client</artifactId>
            </exclusion>
        </exclusions>
    </dependency>

    <!-- https://mvnrepository.com/artifact/org.elasticsearch.client/elasticsearch-rest-high-level-client -->
    <dependency>
        <groupId>org.elasticsearch.client</groupId>
        <artifactId>elasticsearch-rest-high-level-client</artifactId>
        <version>6.8.6</version>
        <exclusions>
            <exclusion>
                    <groupId>org.elasticsearch</groupId>
                    <artifactId>elasticsearch</artifactId>
            </exclusion>
            <exclusion>
                <groupId>org.elasticsearch.client</groupId>
                <artifactId>elasticsearch-rest-client</artifactId>
            </exclusion>
        </exclusions>
    </dependency>

    <!-- https://mvnrepository.com/artifact/org.elasticsearch.client/transport -->
    <dependency>
        <groupId>org.elasticsearch.client</groupId>
        <artifactId>transport</artifactId>
        <version>6.8.6</version>
        <exclusions>
            <exclusion>
                <groupId>org.elasticsearch</groupId>
                <artifactId>elasticsearch</artifactId>
            </exclusion>
            <exclusion>
                <groupId>org.elasticsearch.plugin</groupId>
                <artifactId>transport-netty4-client</artifactId>
            </exclusion>
            <exclusion>
                <artifactId>elasticsearch-rest-client</artifactId>
                <groupId>org.elasticsearch.client</groupId>
            </exclusion>
        </exclusions>
    </dependency>

    <!-- https://mvnrepository.com/artifact/org.elasticsearch.plugin/transport-netty4-client -->
    <dependency>
        <groupId>org.elasticsearch.plugin</groupId>
        <artifactId>transport-netty4-client</artifactId>
        <version>6.8.6</version>
    </dependency>

    <dependency>
        <groupId>org.elasticsearch.client</groupId>
        <artifactId>elasticsearch-rest-client</artifactId>
        <version>6.8.6</version>
    </dependency>

    <!-- https://mvnrepository.com/artifact/org.elasticsearch/elasticsearch -->
    <dependency>
        <groupId>org.elasticsearch</groupId>
        <artifactId>elasticsearch</artifactId>
        <version>6.8.6</version>
    </dependency>
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值