ES集群分布式查询原理

集群分布式查询

elasticsearch的查询分成两个阶段:

  • scatter phase:分散阶段,coordinating node会把请求分发到每一个分片
  • gather phase:聚集阶段,coordinating node汇总data node的搜索结果,并处理为最终结果集返回给用户分片存储原理

集群分布式存储 

当新增文档时,应该保存到不同分片,保证数据均衡,那么coordinating node如何确定数据该存储到哪个分片呢? 

分片存储原理:

elasticsearch会通过hash算法来计算文档应该存储到哪个分片: 

 

说明:

  • _routing默认是文档的id
  • 算法与分片数量有关,因此索引库一旦创建,分片数量不能修改!

新增文档的流程如下:

 

解读:

1)新增一个id=1的文档
2)对id做hash运算,假如得到的是2,则应该存储到shard-2
3)shard-2的主分片在node3节点,将数据路由到node3
4)保存文档
5)同步给shard-2的副本replica-2,在node2节点
6)返回结果给coordinating-node节点

               

 

相关推荐

  1. ES系列索引、文档、、技术原理文章目录

    2024-05-04 10:02:01       58 阅读
  2. 部署es

    2024-05-04 10:02:01       42 阅读
  3. ES实战--扩展

    2024-05-04 10:02:01       52 阅读
  4. Elasticsearch(ES)监控

    2024-05-04 10:02:01       29 阅读

最近更新

  1. docker php8.1+nginx base 镜像 dockerfile 配置

    2024-05-04 10:02:01       98 阅读
  2. Could not load dynamic library ‘cudart64_100.dll‘

    2024-05-04 10:02:01       106 阅读
  3. 在Django里面运行非项目文件

    2024-05-04 10:02:01       87 阅读
  4. Python语言-面向对象

    2024-05-04 10:02:01       96 阅读

热门阅读

  1. R Business Problem

    2024-05-04 10:02:01       25 阅读
  2. 计算机网络 3.1网络的拓扑结构

    2024-05-04 10:02:01       31 阅读
  3. 计算机网络期末试题

    2024-05-04 10:02:01       33 阅读
  4. 【LeetCode】树的DFS(前序、中序、后序)精选10题

    2024-05-04 10:02:01       32 阅读
  5. 富格林:累积经验阻挠黑幕之手

    2024-05-04 10:02:01       29 阅读
  6. Django Admin报错“外键冲突”排查

    2024-05-04 10:02:01       28 阅读
  7. 你用过最好用的AI工具有哪些?

    2024-05-04 10:02:01       32 阅读
  8. 力扣经典150题第五十二题:简化路径

    2024-05-04 10:02:01       34 阅读