客户端是怎么知道需要的 doc在 es 集群的哪个 node 上?
比如 es 集群有 10 台机器,为 index 设置了 3 个分片,2 个副本
客户端读取 doc 的时候,怎么知道需要的 doc 在哪里 node 上,这背后的原理是什么?
回答:
解决了,看下面:
Elasticsearch 的节点的分类如下:
①主节点(Master Node):也叫作主节点,主节点负责创建索引、删除索引、分配分片、追踪集群中的节点状态等工作。Elasticsearch 中的主节点的工作量相对较轻。
用户的请求可以发往任何一个节点,并由该节点负责分发请求、收集结果等操作,而并不需要经过主节点转发。
通过在配置文件中设置 node.master=true 来设置该节点成为候选主节点(但该节点不一定是主节点,主节点是集群在候选节点中选举出来的),在 Elasticsearch 集群中只有候选节点才有选举权和被选举权。其他节点是不参与选举工作的。
②数据节点(Data Node):数据节点,负责数据的存储和相关具体操作,比如索引数据的创建、修改、删除、搜索、聚合。
所以,数据节点对机器配置要求比较高,首先需要有足够的磁盘空间来存储数据,其次数据操作对系统 CPU、Memory 和 I/O 的性能消耗都很大。
通常随着集群的扩大,需要增加更多的数据节点来提高可用性。通过在配置文件中设置 node.data=true 来设置该节点成为数据节点。
③客户端节点(Client Node):就是既不做候选主节点也不做数据节点的节点,只负责请求的分发、汇总等,也就是下面要说到的协调节点的角色。
————————————————
原文作者:CrazyZard
转自链接:https://learnku.com/articles/...
版权声明:著作权归作者所有。商业转载请联系作者获得授权,非商业转载请保留以上作者信息和原文链接。
以上是 客户端是怎么知道需要的 doc在 es 集群的哪个 node 上? 的全部内容, 来源链接: utcz.com/p/938546.html