查询一个document请求时:
1、客户端发送请求到任意一个node,成为coordinate node
2、coordinate node对document进行路由,将请求转发到对应的node,此时会使用round-robin随机轮询算法,在primary shard以及其所有replica中随机选择一个,让读请求负载均衡
比如说coordinate node接收到对一个document的4次查询,就会根据轮询算法,将2次请求转发给P1,将2次请求转发给R1,会尽量让primary shard和所有的replica shard均匀分摊服务的读请求,得到负载均衡的效果
3、接收请求的node返回document给coordinate node
4、coordinate node返回document给客户端
5、特殊情况:document如果还在建立索引过程中,可能只有primary shard有,任何一个replica shard上都没有,但是协调节点可能会请求转发给replica shard,此时可能会导致无法读取到document,但是document完成索引建立之后,primary shard和replica shard上就都有了