2017-06-01 10 views
0

私はElasticSearch REST APIを9200ポート経由でプレイしています。9300から9200ポートまでのElasticSearch APIの違いは何ですか?

公式Javaライブラリクライアントは9300ポートに接続します。

ポートAPIの違いは何ですか?私はElasticSearchにログイベントを渡し、バルクAPIを見てみたい

最も私を気に何がPreBuiltTransportClient経由のJava APIはの多くをもたらすということですクライアントをアプリケーションにプラグインすると(なぜ私はアプリケーション内にorg.apache.luceneのjarファイルが必要ですか?)、依存関係は完全に不要なオーバーヘッドです。

パフォーマンスに違いはありますか?同じレベルの信頼性を提供しますか?

答えて

1

Here

Javaクライアントは、弾性の転送ノードクライアントを作成し、9200ポートで整然と作業の代わりに、トランスポート・モジュールを介して(しないよう十分に機能ノード)クラスタに接続します。したがって、ESのトランスポート層に接続するためにポート9300にフォールバックします。

TransportClient client = new PreBuiltTransportClient(Settings.EMPTY) 
     .addTransportAddress(new InetSocketTransportAddress(InetAddress.getByName("host1"), 9300)) 
     .addTransportAddress(new InetSocketTransportAddress(InetAddress.getByName("host2"), 9300)); 

エラスティックはすべて、ポート9300、さらには他のノードでtransport要求を待ち受けます。

+0

9300がクラスタの検出および制御ポートであり、9200がリクエスト用の公開APIポートであることを意味していますか?私はJavaクライアントを9200のRESTの代わりに9300ポートにバルク挿入することの利点を理解していません。 – gavenkoa

+1

9200は弾力性のために残りのHTTPポートです、9300はディスカバリとトランスポートモジュールポートの両方です。バルクインデックス作成では、httpポート経由でバルクデータを送信するよりも、データをクラスタにインポートするためのデータノードに直接接続するため、パフォーマンスが向上する場合があります。弾力性のあるC#クライアントは、仮想トランスポートクライアントノードを作成することによって、javaとして保存することもできます。 – user3775217

関連する問題