假设现在ES集群中有3个节点,有3个primary shard,replica = 1,3个replica shard,总共6个shard
(1)客户端选择一个node发送请求过去,这个node就是coordinating node(协调节点)
(2)coordinating node,对document进行路由,将请求转发给对应的node(有primary shard)
因为任意一个node都是知道每个document再哪个node上的,根据数据路由,将请求转发到对应的node
这里有一点要注意,如果是增删改操作,只能转发到对应的primary shard去处理,不能由replica shard去处理。如果是查询操作,replica shard也是可以处理的。
(3)实际的node上的primary shard处理请求,然后将数据同步到replica node
假如是一个创建document请求,P1会在自己本地创建document,并创建索引,然后将数据同步到对应的replica node,
(4)coordinating node,如果发现primary node和所有replica node都搞定之后,就返回响应结果给客户端