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节点

相关推荐
钺商科技22 分钟前
【6.1.3 漫画分布式锁】
分布式
TDengine (老段)1 小时前
TDengine 集群部署及启动、扩容、缩容常见问题与解决方案
大数据·数据库·物联网·时序数据库·iot·tdengine·涛思数据
青云交4 小时前
Java 大视界 -- Java 大数据机器学习模型在电商用户复购行为预测与客户关系维护中的应用(343)
java·大数据·机器学习·数据安全·电商复购·地域适配·边疆电商
贝塔西塔4 小时前
PySpark中python环境打包和JAR包依赖
大数据·开发语言·python·spark·jar·pyspark
保持学习ing4 小时前
day4--上传图片、视频
java·大数据·数据库·文件上传·minio·分布式文件系统·文件存储
jiuweiC4 小时前
spark3 streaming 读kafka写es
elasticsearch·kafka·linq
加百力5 小时前
AI基建还能投多久?高盛:2-3年不是问题,回报窗口才刚开启
大数据·人工智能
Web3_Daisy7 小时前
想要抢早期筹码?FourMeme专区批量交易教学
大数据·人工智能·区块链·比特币
GeminiJM12 小时前
Elasticsearch混合搜索深度解析(上):问题发现与源码探索
大数据·elasticsearch·jenkins
桂成林14 小时前
基于Flink 1.20、StarRocks与TiCDC构建高效数据处理链路教程
大数据·flink