0

我想了解我是否需要将负载均衡器作为 Elasticsearch 部署的一部分,或者将其视为一种好习惯。

据我了解,Elasticsearch 的高级休息客户端和传输客户端可以管理节点之间的负载平衡。所以客户端需要逗号分隔的端点列表,就是这样。

中间还有负载均衡器有什么意义吗?对于哪种情况可能有用?每种方法的优缺点?

4

2 回答 2

2

通常 ES 集群中的外部负载均衡器不是很常见,也不需要,因为 Elasticsearch 已经做了负载均衡,默认情况下,ES 集群中的所有数据节点都充当协调角色,但如果你想提高性能,你可以有专门的 co - 协调节点也是如此。

如果您的目标是拥有一个智能负载平衡来提高性能,而不是使用 ES 6.X 或更高版本(默认情况下在 7.X 上打开),您可以在不进行任何外部配置的情况下直接使用它,通过使用自适应副本选择

在您的请求到达 ES 之前,拥有另一个负载均衡器意味着额外的配置和另一个层,所以恕我直言,使用它没有任何意义。

于 2021-02-08T10:28:16.290 回答
1

答案取决于您的架构以及您的要求。您需要负载均衡器来实现高可用性吗?还是出于性能原因/可扩展性?或两者?

与许多其他分布式系统一样,Elasticsearch 具有自己的协议和语义,可以在多个节点之间分配负载并管理故障转移。

您可以使用这些语义来配置节点,使节点可以仅执行协调器的角色——有效地充当搜索请求或批量索引请求等重型操作的负载平衡器。

Elasticsearch 也有自己的内置协议,用于在发生故障时选择新的主节点——再次有效地执行负载均衡器的角色。

一般来说,我建议您使用本机功能来实现您的目标,而不是通过在其前面引入另一种技术来增加更多复杂性。

如果您想要集群的稳定 URL,请配置您的 DNS 服务器以实现该目标。云提供商托管的集群应该已经具备这样的功能,否则你可以通过一些努力来配置它。

于 2021-02-08T09:09:56.837 回答