三亩地 三亩地SAN MU DI · CODE DIARY
ARTICLE DETAIL

日记详情

真实记录编程学习的某一天,欢迎挑你感兴趣的翻一翻。

ES学习笔记之-ClusterState的学习

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" : { "
← 返回列表