>  기사  >  Java  >  Elasticsearch Java 클라이언트 작업을 구현하는 방법

Elasticsearch Java 클라이언트 작업을 구현하는 방법

WBOY
WBOY앞으로
2023-05-22 08:43:501502검색

Elasticsearch의 대부분의 작업은 액션 패키지에 있는 해당 액션을 통해 이루어집니다. 그 구조는 아래 그림과 같습니다.

Elasticsearch Java 클라이언트 작업을 구현하는 방법

여기에 표시된 것은 다양한 기능에 해당하는 작업이 포함된 작업 패키지의 부분 스크린샷입니다. 각 작업의 패키지도 index와 매우 유사합니다. 이러한 작업은 모두 기본 작업에서 상속되므로 구현이 매우 유사합니다. 다음 그림은 indexaction

Elasticsearch Java 클라이언트 작업을 구현하는 방법

이러한 액션은 대체일 뿐 실제 기능을 구현하지 않기 때문에 구현하기도 매우 쉽습니다. 주요 기능은 해당 작업 이름에 해당하는 새로운 응답 및 요청을 생성하는 방법을 제공하는 것입니다. indexaction의 메소드 다이어그램은 다음과 같습니다.

Elasticsearch Java 클라이언트 작업을 구현하는 방법

두 가지 새로운 응답 및 요청 메소드와 단어 NAME 필드만 제공하는 것을 볼 수 있습니다. 이 NAME 필드는 후속 작업 호출에 사용됩니다. 가운데. 해당 기능은 해당 TransportAction에서 구현됩니다.

Elasticsearch Java 클라이언트 작업을 구현하는 방법

TransportAction 인터페이스는 모든 tansportAction에 상속됩니다. 클라이언트가 클라이언트의 관련 인터페이스를 호출하면 클라이언트는 TransportAction 실행 요청을 보냅니다. 각 함수의 TransportAction은 doExecute 메소드를 구현하며, 함수의 로직은 이 메소드에서 구현됩니다. 해당 구현은 이후 기능 분석에서 볼 수 있습니다.

클라이언트 분석에는 다음과 같은 코드가 있습니다.

TransportAction TransportAction = actions.get((ClientAction)action) 해당 기능은 작업을 기반으로 TransportAction을 가져오는 것입니다. 행동은 단지 프록시이기 때문입니다. 이러한 연결의 구현은 다음 코드에 설명된 대로 ActionModule에서 수행됩니다.

registerAction(NodesInfoAction.INSTANCE, TransportNodesInfoAction.class);
        registerAction(NodesStatsAction.INSTANCE, TransportNodesStatsAction.class);
        registerAction(NodesShutdownAction.INSTANCE, TransportNodesShutdownAction.class);
        registerAction(NodesRestartAction.INSTANCE, TransportNodesRestartAction.class);
        registerAction(NodesHotThreadsAction.INSTANCE, TransportNodesHotThreadsAction.class);
        registerAction(ClusterStatsAction.INSTANCE, TransportClusterStatsAction.class);
        registerAction(ClusterStateAction.INSTANCE, TransportClusterStateAction.class);
        registerAction(ClusterHealthAction.INSTANCE, TransportClusterHealthAction.class)

여기에는 콘텐츠의 일부만 표시되며 모듈은 해당 작업과 TransportAction을 바인딩합니다. 이런 방식으로 클라이언트가 요청을 수신해야 할 때 해당 작업 인스턴스에 따라 해당 tansportAction 인스턴스를 찾고 최종 요청이 그 아래에서 처리됩니다.

위 내용은 Elasticsearch Java 클라이언트 작업을 구현하는 방법의 상세 내용입니다. 자세한 내용은 PHP 중국어 웹사이트의 기타 관련 기사를 참조하세요!

성명:
이 기사는 yisu.com에서 복제됩니다. 침해가 있는 경우 admin@php.cn으로 문의하시기 바랍니다. 삭제