ES学习笔记之-ClusterState的学习

📅 2026/8/11 16:14:30
ES学习笔记之-ClusterState的学习
前言:从 Get API 理解 Elasticsearch 的 shards() 方法之前研究过 Elasticsearch 的get api的整体思路,作为编写 ES 插件时的借鉴。当时的重点在于理解整体流程,主要是shardOperation()方法内部的调用逻辑,因此弱化了shards()方法。实际上,shards()方法在理解 ES 的分布式结构层面,作用更大一些。本文将从get api入手,深入理解shards()方法背后的核心数据结构与路由逻辑。一、Get API 使用流程回顾先回顾一下get api的基本使用流程:# 添加文档到 ES curl -XPUT 'http://localhost:9200/test1/type1/1' -d '{"name":"hello"}' 根据文档 ID 读取数据 curl -XGET 'http://localhost:9200/test1/type1/1'使用很简单,但如果考虑到分布式环境,背后的逻辑就不简单了。二、分布式场景下的数据定位问题假设 ES 集群有 3 个节点,数据所在的索引也有 3 个分片,每个分片一个副本。即索引的设置如下:{ "test1" : { "settings" : { "