2020. 3. 20. 19:55ㆍELK
엘라스틱 서치 스프링 연동 방법 정리
엘라스틱 서치를 스프링과 연동하는 방법
1. 스프링에서 지원하는 Spring-data-elasticsearch 모듈을 다운받아 elasticsearchRepository 인터페이스를 이용하는 법
2. 스프링에서 지원하는 Spring-data-elasticsearch 모듈을 다운받아 elasticsearchTemplate 객체를 이용하는 법
3. ES에서 지원하는 Low level REST Client 모듈을 다운받아 RestClient 클래스를 사용하는 법
4. ES에서 지원하는 High level REST Client 모듈을 다운받아 HighLevelRestClient 클래스를 사용하는 법
장단점
1. ElasticsearchRepository
+ 스프링에서 지원해주는 방식으로 JPA와 사용법이 거의 유사하다.
- 엔티티에 @Document(인덱스, 타입) 을 명시해야하기 때문에 인덱스 이름을 바꿔가며 엔티티를 사용할 수 없다.
2. elasticsearchTemplate
+ JPA를 모르는 상태에서도 모듈의 사용법만 얼추 익히면 사용이 가능하다.
+ application.properties만 조금만 만져주면 elasticsearchTemplate 를 빈으로 생성할 필요도 없이 자동으로 만들어준다.
- 엔티티에 @Document(인덱스, 타입) 을 명시해야하기 때문에 인덱스 이름을 바꿔가며 엔티티를 사용할 수 없다.
3. RestClient
+ ES를 아예 REST API로 통신하는 방법, curl 통신과 똑같다.
+ 통신을 위해 헤더, 바디를 작성할 때 사용자가 Json 으로 직접 작성하는 방식이라서 ES 모듈과의 의존성이 거의 없다.
+ 사실상 curl 통신과 똑같기 때문에 ES의 모든 기능을 사용할 수 있다.
- Request, Response 를 위한 Json 통신용 클래스를 일일히 만들어줘야한다는 불편함이 있다.
4. HighLevelRestClient
+ ES를 아예 REST API로 통신하는 방법
+ 통신을 위해 헤더, 바디를 작성할 때 리퀘스트 빌더를 이용하여 리퀘스트 데이터를 전달하는 방식이라서 편하다.
+ Request, Response 를 위한 Json 통신용 클래스를 일일히 만들지 않아도 된다.
- ES 모듈에 의존성이 높은 편이다.
'ELK' 카테고리의 다른 글
엘라스틱서치(ES) 클러스터 재시작 혹은 업그레이드 Tip (1) | 2019.12.05 |
---|---|
elasticsearch status red index 복구 방법 (0) | 2019.11.29 |
ELK Stack 개념 정리 (0) | 2019.10.22 |