ES读写数据工作流程

ES读写数据工作流程

起男 289 2023-08-09

ES读写数据工作流程

写入数据

  1. 客户端发送写数据请求时,可以发送到任意节点。这个节点就会成为coordinating node
  2. coordinating node会计算要写入哪个分片(采用hash取模的方式来计算)
  3. 协调节点会进行路由,将请求转发给对应的primary sharding所在的data node
  4. data node上的primary sharding处理请求,写入数据到索引库,并且将数据同步到对应的replica sharding
  5. 等primary sharding和replica sharding都保存好文档之后,返回客户端响应

查询数据

  1. 客户端发送请求给任意节点,这个节点就成为coordinating node
  2. coordinating node将查询请求广播到每一个data node,这些data node的sharding就会处理该查询请求
  3. 每个sharding进行数据查询,将符合条件的数据放到一个队列中,并将这些数据的文档id、节点信息、分片信息都返回给coordinating node
  4. 由coordinating node将所有的结果进行汇总,并排序
  5. coordinating node向包含这些文档id的sharding发送get请求,对应的sharding将文档信息返回给coordinating node
  6. coordinating node将数据整合返回给客户端