2017-02-08 4 views
0

solrクラウド設定では、8つのsolrノードと3つの飼育係ノードがあります。 1つのロードバランサがすべての索引付けおよび検索問合せを取得し、solrクラウド内のこれらの8つのsolrノードに分散します。 solrクエリを特定のsolrノードに送信する前に、まず、サービスエンドポイントがアクティブであるかどうかを確認します。アクティブな場合にのみ、その特定のsolrノードに要求を送信します。飼い主は、シャードの指導者の選挙を扱います。このセットアップでは、zookeeperはクエリの配布を処理していません。この設定は分散クエリにとって悪いですか?ロードバランサがクエリ配布の作業を行っているため、solrcloudが提供する他のどの機能が欠落していますか。solrcloudでzookeeperと通信しないロードバランサを使用すると、機能が失われることはありますか?

solrサービスにアクセスするクライアント(Java、Ruby、JavaScript)が異なるため、ロードバランサが必要です。 SolrJだけがCloudSolrServerクラスを使用して飼い猫と通信する能力を持っています)。また、クライアントサイドからの設定を変更することなく、動物園のノードを拡大することもできます。

答えて

1

SolrJ CloudSolrClientは利点のカップルを持っている:

  1. ノードの自動検出:それは常にSolrCloudクラスタ自体が使用するのと同じZKメカニズムを使用して、ノードがクラスタ内にあるかを知っています。

  2. クエリ固有のルーティングは:インデックス要求です:任意の要求がSolrCloudクラスタ内の任意のノードに行くことができますが、これらの多くは、

    2aは、要求を処理する必要があり、実際のノードへの単純なプロキシになりますその文書のIDを扱うシャードのリーダーに直接ルーティングされます。バルク挿入リクエストの場合、これは複数のサブリクエストを意味し、ドキュメントのバッチを各適切なシャードに直接配信します。

    2b:コレクションへのクエリは、そのコレクションのシャードを持つノードにルーティングされます。

    CloudSolrClientはすでにこの内容と経路を認識しており、クラスタ内のプロキシ要求を回避します。

すべては、内部ルーティング要求は非常に軽量です。要求にいくらかの遅延を追加し、内部ネットワークの帯域幅を増やし、最も小さなCPU使用量をSolrCloudクラスタに追加します。

私が言っていることは、これらの利点を再現することが難しい場合は、Solrが処理することになり、おそらくそれらがなければうまくいくでしょうということです。

関連する問題