跳至主要內容

ES分布式的结构分享

Sunhb...大约 2 分钟框架学习ES存储结构ES分布式

ES 分布式存储原理

介绍ES的分布式架构原理,包括ES存储结构和ES分布式框架设计

参考:ES 的分布式架构原理能说一下么(ES 是如何实现分布式的啊)?open in new window

1. ES 存储结构

ES集群是在多个机器上启动ES进程组成的集群。

1.1 ES 索引分区

ES 中存储数据的基本单位是索引(index),比如说你现在要在 ES 中存储一些订单数据,你就应该在 ES 中创建一个索引 order_idx ,所有的订单数据就都写到这个索引里面去,一个索引差不多就是相当于是 mysql 里的一个数据库。

ES 的索引分为五个层级

  • Index -> Type -> Mapping -> document -> field

下面是ES和MySQL的类比表格

ESMySQLES 概念理解
Indexschema索引是一组具有相似特征的文档的集合。
TypeTable类型是索引中文档的逻辑分组。例如,对于博客文章索引,可以将文章文档分为“技术”、“旅游”等不同的类型。
Mapping表结构映射定义了索引中每个字段的类型和属性。例如,对于标题字段,可以定义其类型为“文本”,并指定分词器等属性
documentdata文档是Elasticsearch中最基本的数据单元。每个文档都是一个JSON对象,包含一组键值对,代表一条记录。相当于关系型数据库中的行
fieldfield字段是文档中的数据项。例如,在博客文章文档中,标题、正文和作者等都是字段。

ES具体概念理解open in new window

1.2 ES shard分区

  • 支持横向拓展:一个索引可以拆分成多个 shard ,每个 shard 存储部分数据

比如你数据量是 3T,3 个 shard,每个 shard 就 1T 的数据,若现在数据量增加到 4T,怎么扩展,很简单,重新建一个有 4 个 shard 的索引,将数据导进

  • 增强吞吐能力:多台机器上并行分布式执行,提高了吞吐量和性能。

  • 提高读写能力primary shard 进行读、写;replica shard 进行读。primary shard写完后,会同步到其他replica shard上。

2. ES 框架设计

ES 框架图
每个ES集群都会有一个master节点
master 节点的职责:维护索引元数据、负责切换 primary shard 和 replica shard 身份,即节点上的primary shard挂了,其他replica shard替换;replica shard 挂了,master 节点会控制将缺失的 replica shard 分配过去。

以上是最基本的ES分布式引擎的框架设计。

评论
  • 按正序
  • 按倒序
  • 按热度
Powered by Waline v3.0.0-alpha.1