NEST API、そしてもちろん ElasticSearch がとても気に入っています。魅力の大部分は、クラスターを非常に簡単にスケールアウトできることです。1 つのマスターと 2 つの読み取りスレーブで構成される 3 つのノードがあります。NEST クライアントは、クラスター全体で負荷分散とフェイルオーバーをサポートしていますか?
1 に答える
いいえ、選択によります。
ロードバランシングは、アプリケーションごとに異なる多くのヒューリスティックに基づいています。多くのセットアップでは、elasticsearchクラスターの前にすでにハードウェア/ソフトウェアロードバランサーがあります。
そのelasticsearchに加えて、すでに負荷分散が行われているため、クライアントが常に1つのノードにヒットした場合でも、クラスターは他のノードに検索を調整させることができます。
もちろん、フェイルオーバーはアプリケーションで処理する必要があるものです(ハードウェア/ロードバランサーがまだこれを処理していない場合)、クライアントのプールを保持できる別個のnugetパッケージとして単純な実装をリリースする可能性がありますが、今のところ私の主な焦点は、NESTのAPIを1.0の安定性/完全に文書化されるように磨くことです。
2014年更新
NEST 1.0クラスターのフェイルオーバーと接続プールがクライアントに組み込まれているため、次のようになります。
var node = new Uri("http://mynode.example.com:8082/apiKey");
var connectionPool = new SniffingConnectionPool(new[] { node1, node2, node3 });
var config = new ConnectionConfiguration(connectionPool);
var client = new ElasticsearchClient(config);
http://nest.azurewebsites.net/elasticsearch-net/cluster-failover.html
http://nest.azurewebsites.net/elasticsearch-net/connecting.html