elasticsearch - 我应该从我的应用程序中查询哪个 elasitcsearch 节点
问题描述
如果我要在具有 3 个主节点和 5 到 10 个数据节点的弹性上设置我的集群,我应该在我的应用程序中实际使用哪个节点 IP 地址来查询弹性。我正在遵循弹性热温架构,但据我了解,主节点应始终负责处理传入请求,然后将该请求协调到集群中的其他节点并在最终响应上进行操作。
那么我应该只在我的应用程序中使用主节点 IP 地址来与集群通信吗?
解决方案
首先,您不应该使用单独的 IP 连接到集群,因为如果节点出现故障,这可能会成为您的单点故障。您应该有一个连接到数据节点或协调器节点的负载平衡 URL,以帮助您进行搜索。
此外,您似乎拥有专用的主节点。通常对于较大规模的集群,不建议使用 master 作为搜索协调器,理想情况下应该让它们成为 master 合格的唯一角色,以确保集群稳定性。因此,您可以选择使用数据节点或仅协调器节点来接受您的搜索请求。
如果您使用 JEST、NEST 等客户端,而不是直接使用 http 端点进行 _search,那么您还可以选择提供 IP/主机名列表以形成连接池。
推荐阅读
- excel - VBA 复印表在一个 WB 中滞后,但在另一个 WB 中不滞后
- javascript - 通过关联适当使用
- c# - 无法打开程序集“路径”:没有这样的文件或目录——Monogame 默认游戏没有运行?
- json - 我的 manifest.json 文件包含一个我找不到的错误
- python - 如何为特定的解释器获取 PYTHONHOME?
- excel - 可以返回对象和标量的 vba 函数
- html - 将 HTML 中的用户输入放入链接(使用 APIS)(JSON + AJAX + HTML)
- r - 将函数重命名为 r 上的列表时出错
- python - TypeError: unhashable type: 'dict' in Networkx 随机游走代码,以前可以工作
- python - Python混合全局变量和局部变量?