概述

  1. 选择任意一个数据节点(DataNode)发送请求,例如:node2。此时,node2就成为一个coordinating node(协调节点)
  2. 计算得到文档要写入的分片
    1. shard = hash(routing) % number_of_primary_shards
    2. routing 是一个可变值,默认是文档的 _id
  3. coordinating node会进行路由,将请求转发给对应的主分片(Primary Shard)所在的数据节点(假设主分片在node1、副本分片在node2)
  4. node1节点上的Primary Shard处理请求,写入数据到索引库中,并将数据同步到Replica Shard
  5. Primary ShardReplica Shard都保存好了文档,返回client

image.png