ホームページ  >  記事  >  Java  >  elasticsearch Javaクライアントアクションを実装する方法

elasticsearch Javaクライアントアクションを実装する方法

WBOY
WBOY転載
2023-05-22 08:43:501513ブラウズ

elasticsearch のほとんどの操作は、アクション パッケージに含まれる対応するアクションを通じて行われます。その構造は次の図に示されています。

elasticsearch Javaクライアントアクションを実装する方法

ここに示されているのは、さまざまな機能に対応するアクションが含まれているアクション パッケージの一部のスクリーンショットです。各アクションのパッケージもインデックスとよく似ています。これらのアクションはすべて基本アクションから継承するため、実装は非常に似ています。次の図は、indexaction の継承関係を示しています。

elasticsearch Javaクライアントアクションを実装する方法

これらのアクションは単なる代替であり、実際の関数を実装していないため、実装も非常に簡単です。それらの主な機能は、対応する操作名に対応して、新しい応答と要求を作成するためのメソッドを提供することです。 Indexaction を例にとると、そのメソッド図は次のとおりです:

elasticsearch Javaクライアントアクションを実装する方法

#レスポンスとリクエストを作成するための 2 つのメソッドと、NAME フィールドのみが提供されていることがわかります。この NAME フィールドは後続のアクション呼び出しで使用されます。対応する関数は、対応するtransportActionに実装されます。

elasticsearch Javaクライアントアクションを実装する方法

TransportAction インターフェイスは、すべての TansportAction に継承されます。クライアントがクライアントの関連インターフェイスを呼び出すと、クライアントは TransportAction の実行にリクエストを送信します。各関数の TransportAction は doExecute メソッドを実装しており、関数のロジックはこのメソッド内に実装されています。ここでは今のところ説明しません。対応する実装は後続の機能分析で説明します。

クライアント分析には次のようなコードがあります:

TransportActiontransportAction = events.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 中国語 Web サイトの他の関連記事を参照してください。

声明:
この記事はyisu.comで複製されています。侵害がある場合は、admin@php.cn までご連絡ください。