Java Service Tree Framework Community

글제목 : ARMS 에서 플루언트D 알리아스 적용 기능 추가 관련

페이지 정보

profile_image
작성자 최고관리자
댓글 0건 조회 57회 작성일 24-09-02 14:03

본문

엘라스틱 서치에서 알리아스는 여러 인덱스를 한 번에 조회하기 위한 수단으로 사용함.

fluentd-2024-09-01 , fluentd-2024-09-02 인덱스를 조회하기 위해서는 GET fluentd-2024-09-01/_search , GET fluentd-2024-09-02/_search 각각 명시해야 함.

하지만 알리아스를 위에 언급한 인덱스에 fluentd 로 설정하면 GET fluentd/_search 로 조회할 수 있음.

 

ARMS는 인덱스를 생성할 때 인덱스명을 Document 어노테이션에 지정한 indexName 속성값을 참조함. RollingIndexName 이라는 

커스텀 어노테이션을 메소드 위에 선언해두면 해당 메소드에서 리턴해주는 값을 인덱스명의 접미어로 조합하게 됨.

알리아스를 적용할 때에는 아래 내용과 같은 프로세스를 가지는 과정에서 지정하고 있음.

  1. 템플릿 생성

    a. 템플릿이 존재하지 않으면 생성

    b. 알리아스 명명 규칙은 Document 어노테이션의 indexName 속성값을 지정함.

  2. 템플릿을 참조하여 인덱스 생성

    a. 인덱스가 존재하지 않을 경우 생성.

    b. 인덱스명 패턴을 정할 수 있음. 예) jiraissue-*

    c. 인덱스를 생성할 때 템플릿에 미리 정한 알리아스 명명 규칙을 가져와서 알리아스를 생성함.

  3. 알리아스 명을 변경하기

    a. 엔티티를 참조하여 인덱스명(인덱스명-*)을 조회함.

    b. 조회하여 나온 인덱스들의 알리아스를 변경함.

ARMS는 인덱스를 생성 시 템플릿을 참조하여 알리아스 명명 규칙을 사용하지만 ARMS에서 관리하지 않는 Fluentd 같은 인덱스들의 알리아스는 빈 껍데기일 수가 있음. 

즉, 알리아스를 사용하는 관점에서는 사용할 수가 없음. 그렇기 때문에 위에서 3번의 내용이 필요하게 됨.

 

ElasticsearchOperations 클래스는 CRUD 처리에 적합한 스프링에서 제공하는 고레벨 성향의 클래스임. 

그렇기 때문에 인덱스명 조회 같은 메타적 성격을 띠는 저레벨의 기능들은 지원을 안 함. 

인덱스명을 조회할 경우에는 RestHighLevelClient 클래스를 참조하여 저레벨의 기능들을 사용할 수밖에 없음.

 

============알게 된 점===================

템플릿을 생성하고 바로 배치를 실행하면 에러가 발생함. 

그러나 재시작하면 문제가 없이 배치가 실행됨. 

RestHighLevelClient 를 사용하면서 close 를 명시적으로 한 게 문제였음.

댓글목록

등록된 댓글이 없습니다.

어플리케이션 API Data를 가져오는 중입니다...
맨위로