我想了解我是否需要将负载均衡器作为 Elasticsearch 部署的一部分,或者将其视为一种好习惯。
据我了解,Elasticsearch 的高级休息客户端和传输客户端可以管理节点之间的负载平衡。所以客户端需要逗号分隔的端点列表,就是这样。
中间还有负载均衡器有什么意义吗?对于哪种情况可能有用?每种方法的优缺点?
我想了解我是否需要将负载均衡器作为 Elasticsearch 部署的一部分,或者将其视为一种好习惯。
据我了解,Elasticsearch 的高级休息客户端和传输客户端可以管理节点之间的负载平衡。所以客户端需要逗号分隔的端点列表,就是这样。
中间还有负载均衡器有什么意义吗?对于哪种情况可能有用?每种方法的优缺点?
答案取决于您的架构以及您的要求。您需要负载均衡器来实现高可用性吗?还是出于性能原因/可扩展性?或两者?
与许多其他分布式系统一样,Elasticsearch 具有自己的协议和语义,可以在多个节点之间分配负载并管理故障转移。
您可以使用这些语义来配置节点,使节点可以仅执行协调器的角色——有效地充当搜索请求或批量索引请求等重型操作的负载平衡器。
Elasticsearch 也有自己的内置协议,用于在发生故障时选择新的主节点——再次有效地执行负载均衡器的角色。
一般来说,我建议您使用本机功能来实现您的目标,而不是通过在其前面引入另一种技术来增加更多复杂性。
如果您想要集群的稳定 URL,请配置您的 DNS 服务器以实现该目标。云提供商托管的集群应该已经具备这样的功能,否则你可以通过一些努力来配置它。