2013-02-19 90 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