Elasticsearch의 대부분의 작업은 액션 패키지에 있는 해당 액션을 통해 이루어집니다. 그 구조는 아래 그림과 같습니다.
여기에 표시된 것은 다양한 기능에 해당하는 작업이 포함된 작업 패키지의 부분 스크린샷입니다. 각 작업의 패키지도 index와 매우 유사합니다. 이러한 작업은 모두 기본 작업에서 상속되므로 구현이 매우 유사합니다. 다음 그림은 indexaction
이러한 액션은 대체일 뿐 실제 기능을 구현하지 않기 때문에 구현하기도 매우 쉽습니다. 주요 기능은 해당 작업 이름에 해당하는 새로운 응답 및 요청을 생성하는 방법을 제공하는 것입니다. indexaction의 메소드 다이어그램은 다음과 같습니다.
두 가지 새로운 응답 및 요청 메소드와 단어 NAME 필드만 제공하는 것을 볼 수 있습니다. 이 NAME 필드는 후속 작업 호출에 사용됩니다. 가운데. 해당 기능은 해당 TransportAction에서 구현됩니다.
TransportAction 인터페이스는 모든 tansportAction에 상속됩니다. 클라이언트가 클라이언트의 관련 인터페이스를 호출하면 클라이언트는 TransportAction 실행 요청을 보냅니다. 각 함수의 TransportAction은 doExecute 메소드를 구현하며, 함수의 로직은 이 메소드에서 구현됩니다. 해당 구현은 이후 기능 분석에서 볼 수 있습니다.
클라이언트 분석에는 다음과 같은 코드가 있습니다.
TransportAction
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 중국어 웹사이트의 기타 관련 기사를 참조하세요!