4

我真的很喜欢 NEST API,当然还有 ElasticSearch。很大一部分吸引力在于能够非常轻松地扩展集群。我有 3 个节点,包括 1 个主节点和 2 个读取从节点。NEST 客户端是否为跨集群的负载平衡和故障转移提供任何支持?

4

1 回答 1

5

不,选择。

负载平衡基于每个应用程序不同的许多启发式方法。许多设置已经在 elasticsearch 集群前面有硬件/软件负载均衡器。

最重要的是,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

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

于 2013-02-20T09:16:04.387 回答