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 数据,最终返回给客户端

猜你喜欢

转载自www.cnblogs.com/wanjun-top/p/12808636.html