我非常喜欢NEST API,当然还有ElasticSearch。吸引力的很大一部分是能够非常容易地扩展集群。我有3个节点,包括1个主从和2个读从。 NEST客户端是否为群集中的负载平衡和故障转移提供任何支持?
答案 0 :(得分:5)
不,选择。
负载均衡基于每个应用程序不同的许多启发式算法。许多设置已经在elasticsearch集群前面有硬件/软件负载均衡器。
除此之外,弹性搜索已经进行了负载平衡,因此即使客户端始终命中一个节点,群集也可以让其他节点协调搜索。
当然,故障转移是需要在应用程序中处理的事情(如果硬件/负载均衡器尚未处理这个问题),我可能会将一个简单的实现作为一个单独的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