关于ElasticSearch:ES工作原理

46次阅读

共计 573 个字符,预计需要花费 2 分钟才能阅读完成。

写入过程

(1)申请打到的节点叫做协调节点,协调节点依据特定的路由算法将文档进行路由,行将申请转发到指定的节点(路由算法:hash(doc_id) % num_primary_shard)
(2)节点的主分片 primary shard 解决申请,并将数据同步到正本分片 replica shard
(3)协调节点发现主分片和所有的正本分片写完之后,再返回客户端后果

读取过程

(1)申请打到的节点叫做协调节点,协调节点会依据文档 id 进行 hash,判断文档在哪个节点,而后依据随机算法,从相应节点的主分片和副本分片中随机抉择一个进行查问
(2)承受申请的分片将后果返回协调节点,协调节点在返回数据给客户端

查问过程

多 shard 搜寻过程别离两局部,一是在多个 shard 中查问合乎的文档,二是从多个 shard 中获取数据

1. 查问阶段

当申请达到某个节点后,该节点就是以后申请的协调节点。协调节点首先会创立一个 from + size 的空优先队列,

  • 向相干的 shard 发送查问申请
  • 每个 shard 也会在本地创立一个 from + size 的空优先队列,而后查问合乎的文档,再将后果返回协调节点,但后果中只蕴含文档 id 和排序值
  • 协调节点合并其余分片返回的查问后果

2. 获取数据阶段

  • 协调节点分别哪些文档须要取回,并向相干分片发送多个 GET 申请获取数据
  • 分片加载并丰盛文档后返回
  • 协调节点合并后果,而后返回给客户端
正文完
 0