数据读流程
可以从主分片或者从其它任意副本分片检索文档
# 步骤
- 客户端向 Node 1 发送获取请求
- 节点使用文档的 _id 来确定文档属于分片 0 ;分片 0 的副本分片存在于所有的三个节点上。 上例中,它将请求转发到 Node 2
- Node 2 将文档返回给 Node 1 ,然后将文档返回给客户端
- 在处理读取请求时,协调结点在每次请求的时候都会通过轮询所有的副本分片来达到负载均衡
- Node1 访问 Node2 是由于轮询到了Node 2节点
- 在文档被检索时,已经被索引的文档可能已经存在于主分片上但是还没有复制到副本分片。 在这种情况下,副本分片可能会报告文档不存在,但是主分片可能成功返回文档
- 即使数据已经在主分片了,也有可能查询不到,副本分片可能还没有数据
- 一旦索引请求成功返回给用户,文档在主分片和副本分片都是可用的
- 在处理读取请求时,协调结点在每次请求的时候都会通过轮询所有的副本分片来达到负载均衡
# 小结
在处理读取请求时,协调结点在每次请求的时候都会通过轮询所有的副本分片来达到负载均衡
在文档被检索时,已经被索引的文档可能已经存在于主分片上但是还没有复制到副本分片。 在这种情况下,副本分片可能会报告文档不存在,但是主分片可能成功返回文档。 一旦索引请求成功返回给用户,文档在主分片和副本分片都是可用的
- 客户端发送查询请求到协调点
- 协调点计算数据所在的分片以及全部副本位置
- 为了负载均衡,轮询所有节点
- 将请求转发给具体的节点
- 节点返回结果给协调节点,协调节点将结果返回给客户端
Last Updated: 2022/04/10, 13:57:31