首页 > 解决方案 > 我应该从我的应用程序中查询哪个 elasitcsearch 节点

问题描述

如果我要在具有 3 个主节点和 5 到 10 个数据节点的弹性上设置我的集群,我应该在我的应用程序中实际使用哪个节点 IP 地址来查询弹性。我正在遵循弹性热温架构,但据我了解,主节点应始终负责处理传入请求,然后将该请求协调到集群中的其他节点并在最终响应上进行操作。

那么我应该只在我的应用程序中使用主节点 IP 地址来与集群通信吗?

标签: elasticsearch

解决方案


首先,您不应该使用单独的 IP 连接到集群,因为如果节点出现故障,这可能会成为您的单点故障。您应该有一个连接到数据节点或协调器节点的负载平衡 URL,以帮助您进行搜索。

此外,您似乎拥有专用的主节点。通常对于较大规模的集群,不建议使用 master 作为搜索协调器,理想情况下应该让它们成为 master 合格的唯一角色,以确保集群稳定性。因此,您可以选择使用数据节点或仅协调器节点来接受您的搜索请求。

如果您使用 JEST、NEST 等客户端,而不是直接使用 http 端点进行 _search,那么您还可以选择提供 IP/主机名列表以形成连接池。


推荐阅读