博客
关于我
ES elasticsearch集群入门
阅读量:269 次
发布时间:2019-03-01

本文共 998 字,大约阅读时间需要 3 分钟。

Elasticsearch 集群技术解析

1. 引言

在单机部署 Elasticsearch 时,虽然能够满足基础的数据检索需求,但在面对高并发、数据量大等复杂场景时,单机部署往往显得力不从心。为了实现数据的高可用性和系统的横向扩展,通常需要搭建 Elasticsearch 集群。通过集群部署,不仅可以有效保障数据的安全性,还能实现对海量数据的高效管理。

2. 核心原理

Elasticsearch 集群的核心原理主要涉及分片(Shard)和副本(Replica)的管理机制。

2.1 分片与副本

每个索引在创建时会被分成多个分片(Shard),默认情况下会创建5个主分片(Primary Shards)。这些主分片会分布式地存储在不同的节点上。需要注意的是,一旦主分片的数量确定后,无法再对其进行修改。

为了保证数据的高可用性,每个主分片都有对应的副本分片(Replica Shards)。副本分片负责数据的容错和负载均衡管理。需要注意的是,主分片和副本分片不能存放在同一台服务器上,以防止数据丢失。

2.2 数据路由

在 Elasticsearch 集群中,数据路由是决定文档存储位置的关键过程。当客户端提交创建文档请求时,Elasticsearch 会根据路由算法确定目标分片。具体来说,路由算法是通过将文档路由值(Routing)进行哈希计算,取余数来确定目标分片。

需要注意的是,路由算法的结果会直接影响文档的存储位置。如果路由算法的计算结果在集群环境中发生变化,可能会导致文档无法找到。

3. 分片机制

在 Elasticsearch 集群中,每个索引都可以被动态分片管理。具体包括以下几个方面:

3.1 主分片与副本分片

  • 主分片:负责存储索引的所有数据。集群中默认创建5个主分片。
  • 副本分片:用于备份主分片的数据。在主分片服务中断时,副本分片可以保证数据的可用性。

3.2 分片的健康状态

  • 如果一个索引只有主分片而没有副本分片,集群的健康状态会显示为黄色。可以通过 header 揿件等工具进行查看。
  • 副本分片的存在保证了在主分片失效时,数据仍然可以被正常访问。

3.3 分片的分布与容错

  • 主分片与副本分片不会放在同一台服务器上,以防止数据丢失。
  • 集群中每个分片的数据分布是负载均衡的,这样可以最大限度地提高集群的吞吐量。

4. 相关信息

转载地址:http://ojhx.baihongyu.com/

你可能感兴趣的文章
Numpy:条件总和
查看>>
numpy、cv2等操作图片基本操作
查看>>
numpy中的argsort的用法
查看>>
NumPy中的精度:比较数字时的问题
查看>>
numpy判断对应位置是否相等,all、any的使用
查看>>
Numpy多项式.Polynomial.fit()给出的系数与多项式.Polyfit()不同
查看>>
Numpy如何使用np.umprod重写range函数中i的python
查看>>
numpy学习笔记3-array切片
查看>>
numpy数组替换其中的值(如1替换为255)
查看>>
numpy数组索引-ChatGPT4o作答
查看>>
numpy最大值和最大值索引
查看>>
NUMPY矢量化np.prod不能构造具有超过32个操作数的ufunc
查看>>
Numpy矩阵与通用函数
查看>>
numpy绘制热力图
查看>>
numpy转PIL 报错TypeError: Cannot handle this data type
查看>>
Numpy闯关100题,我闯了95关,你呢?
查看>>
nump模块
查看>>
Nutch + solr 这个配合不错哦
查看>>
NuttX 构建系统
查看>>
NutUI:京东风格的轻量级 Vue 组件库
查看>>