2013-02-19 91 views
3

我非常喜歡NEST API,當然還有ElasticSearch。吸引力的很大一部分是能夠非常容易地擴展集羣。我有3個節點,由1個主節點和2個讀取從節點組成。 NEST客戶端是否爲羣集上的負載均衡和故障轉移提供了任何支持?如何使用ElasticSearch羣集和NEST?

回答

5

不,可以選擇。

負載均衡基於許多啓發式,每個應用程序都不相同。很多設置在elasticsearch集羣前已經有硬件/軟件負載平衡器。

除了elasticsearch已經負載均衡之外,即使客戶端始終訪問一個節點,集羣也可以讓其他節點協調搜索。

當然故障轉移是東西,需要在應用程序中進行處理(如果硬件/負載均衡器已經不照顧這個),我可能會發佈一個簡單的實現作爲一個單獨的NuGet包,可以保持池客戶,但現在我的主要焦點是拋出NEST的API 1.0穩定/完全記錄。

UPDATE 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

http://nest.azurewebsites.net/nest/connecting.html

+2

@Martin Laarman,你是否有時間去處理上述客戶端池包,如果沒有,連接到ElasticSearch羣集的首選方式是什麼? - 只需選擇一個隨機節點? – lasseschou 2013-10-22 13:22:55