Elastic Search

Ch08. 엘라스틱서치 클라이언트 - 엘라스틱서치 클라이언트의 이해

webmaster 2025. 10. 2. 15:26
728x90

클라이언트 모듈

엘라스틱서치에서는 다양한 프로그래밍 언어에서 직접적으로 사용할 수 있는 라이브러리를 개발해서 제공한다.(지원하지 않는 언어에 대해서는 직접 클라이언트를 개발해서 추가하는 법 제공)

 

엘라스틱 서치에서 지원하는 언어별 라이브러리

  • Java REST Client
  • Java API
  • JavaScript API
  • Groovy API
  • NET API
  • PHP API
  • Perl API
  • Python API
  • Ruby API
  • Community Contributed Clients

 

자바 클라이언트 모듈

내부적으로 Http 방식으로 Rest API를 사용해 접근하는 방식과 네티 모듈을 이용해 네이티브 클라이언트를 통해 접근하는 방식 2가지가 있다.

 

Rest Client 방식

  • Java High Level Rest Client라고도 불린다.
  • Http 방식을 이용해 엘라스틱서치와 통신한다.
  • 내부적으로는 HttpClient 모듈을 사용한다

Transport 클라이언트

  • Java Client라고도 불린다.
  • 초기부터 제공되던 클라이언트 방식으로 상대적 빠른 속도를 보장한다.
  • 소켓을 이용해 엘라스틱서치와 통신한다.
  • 내부적으로는 Netty 모듈을 사용한다.

초기 엘라스틱서치는 소켓을 이용한 Transport 클라이언트만 제공(속도가 빠름)했으나, 버전업에 따라 제공되는 기능이나, API 명세에 따라 클래스나 메서드가 바뀌는 문제가 있어 RestClient 이 도입되었다. RestClient는 내부적으로 Http 방식으로 동작하기 때문에 매우 유연한 사용성을 제공하고, 현재는 성능 또한 많이 좋아졌기 때문에 RestClient 방식을 사용하는 것이 좋다.

728x90