rest - 如何初始化 Elasticsearch REST 客户端
问题描述
假设我有一个包含主节点、数据节点和协调节点的集群。当我初始化一个 REST 客户端时,我应该包括以上哪些节点类型?所有节点,只有数据节点,只有协调节点,还是它们的某种组合?
例如:
RestClient restClient = RestClient.builder(
new HttpHost("master-eligible-node-1", 9200, "http"),
new HttpHost("master-eligible-node-2", 9200, "http"),
new HttpHost("master-eligible-node-3", 9200, "http")).build();
或者,
RestClient restClient = RestClient.builder(
new HttpHost("master-eligible-node-1", 9200, "http"),
new HttpHost("master-eligible-node-2", 9200, "http"),
...
new HttpHost("master-eligible-node-n", 9200, "http"),
new HttpHost("data-node-1", 9200, "http"),
new HttpHost("data-node-2", 9200, "http"),
...
new HttpHost("data-node-n", 9200, "http"),
new HttpHost("coord-node-1", 9200, "http"),
new HttpHost("coord-node-2", 9200, "http"),
...
new HttpHost("coord-node-n", 9200, "http")).build();
作为第二部分,是否可以仅将 REST 客户端初始化为协调节点,或仅初始化数据节点?我在想,如果我想隔离查询操作和索引操作,我可能想要这样做。
谢谢!
解决方案
经验法则是:
- 永远不要直接连接到主节点
- 如果您有专用的协调节点,请使用它们
- 否则连接到您的数据节点,这些节点本质上也充当协调节点
推荐阅读
- scheme - 为什么是这样的 if 语句?
- python - 蟒蛇/美丽的汤。从中提取所有文本
- h2 和 h3 标签之间的标签
- javascript - 刷新并转到php上的上一页
- python - Pandas:计算数据框中所有行与特定行之间的差异
- php - 如何匹配/替换 PHP 中的字符串?
- lua - 为什么在使用 1.5mb 网络进行预测时,Torch 使用约 700mb 的 GPU 内存
- sql - 查找表中不存在的值
- r - 将变量子集的文本大小写转换为大写,以使我能够作为单个项目阅读
- reactjs - 如何从侧边栏或导航中的 React Router 获取活动参数值以创建链接?
- excel - 如何修剪给定文件夹中文件列表的文件名的最后一部分