changhyeonnam / Kafka_OpenSearch_pipeline

0 stars 0 forks source link

ElasticSearch: Unable to parse response body for Response 과 관련된 에러. #4

Open changhyeonnam opened 7 months ago

changhyeonnam commented 7 months ago

▶ ERROR 2024-03-28 18:00:52 c.s.K.s.ConsumerListenService[sendKafkaToEs:72] - Error occurred while indexing data to ElasticSearch: Unable to parse response body for Response{requestLine=POST /test-2024.03.28/_doc?timeout=1m HTTP/1.1, host=http://54.180.148.20:9200, response=HTTP/1.1 201 Created}

  String indexPrefix = "test-";
  String dateIndex = indexPrefix + dateUtils.getDateNowString();
  IndexRequest request = new IndexRequest(dateIndex);
  request.source(gson.toJson(kafkaConsumerData), XContentType.JSON);
  IndexResponse response = esClient.index(request, RequestOptions.DEFAULT);

다음은 Kafka에서 받은 데이터를 ElasticSearch에 저장하는 코드이다. 정상적으로 ElasticSearch에 저장되어, 상태코드 201를 반환받았지만, response body를 parse할때 오류가 생긴다.

changhyeonnam commented 7 months ago

ElasticSearch version 문제였다. 현재 ElasticSearch 대신 (유료화 이슈) OpenSearch를 사용하는데, ElasticSearch들의 과거 버전을 지원한다고 생각하여 바꾸지 않았었다.

gradile에 implementation "org.springframework.data:spring-data-elasticsearch:4.1.0" 대신

  implementation 'org.opensearch.client:spring-data-opensearch:1.3.0'
  implementation 'org.opensearch.client:spring-data-opensearch-starter:1.3.0'

을 사용했고, 라이브러리 버전에 맞춰 메서드들을 바꾸어 주었더니 해결되었다.