ElasticSearch 搜索数据过程
es 写数据过程
一、客户端选择一个 node 发送请求过去,这个 node 就是 coordinating node
(协调节点)
二、coordinating node
对 document 进行路由,将请求转发给对应的 node(有 primary shard)
三、实际的 node 上的 primary shard
处理请求,然后将数据同步到 replica node
四、coordinating node
如果发现 primary node
和所有 replica node
都搞定之后,就返回响应结果给客户端
写请求是写入 primary shard,然后同步给所有的 replica shard;读请求可以从 primary shard 或 replica shard 读取,采用的是随机轮询算法。
es 读数据过程
一、客户端发送请求到一个 coordinate node(协调节点)
二、协调节点将搜索请求转发到所有的 shard 对应的 primary shard
或 replica shard
,都可以
三、每个 shard 将自己的搜索结果(其实就是一些 doc id
)返回给协调节点,由协调节点进行数据的合并、排序、分页等操作,产出最终结果(doc id list)
四、接着由协调节点根据 doc id
去各个节点上拉取实际的 document
数据,最终返回给客户端