博客
关于我
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/

你可能感兴趣的文章
Objective-C实现longest Common Substring最长公共子串算法(附完整源码)
查看>>
Objective-C实现longest increasing subsequence最长递增子序列算法(附完整源码)
查看>>
Objective-C实现longestCommonSubsequence最长公共子序列算法(附完整源码)
查看>>
Objective-C实现LongestIncreasingSubsequence最长递增子序列算法(附完整源码)
查看>>
Objective-C实现lorenz transformation 洛伦兹变换算法(附完整源码)
查看>>
Objective-C实现Lower-Upper Decomposition上下分解算法(附完整源码)
查看>>
Objective-C实现LowerCaseConversion小写转换算法(附完整源码)
查看>>
Objective-C实现lowest common ancestor最低共同祖先算法(附完整源码)
查看>>
Objective-C实现LRU 缓存算法(附完整源码)
查看>>
Objective-C实现LRU缓存(附完整源码)
查看>>
Objective-C实现LRU(least recently used)算法(附完整源码)
查看>>
Objective-C实现lstm prediction预测算法(附完整源码)
查看>>
Objective-C实现lucas数列算法(附完整源码)
查看>>
Objective-C实现Luhn (Mod 10)Algorithm算法(附完整源码)
查看>>
Objective-C实现LZW编码(附完整源码)
查看>>
Objective-C实现MAC桌面暗水印(附完整源码)
查看>>
Objective-C实现mandelbrot曼德勃罗特集算法(附完整源码)
查看>>
Objective-C实现markov chain马尔可夫链算法(附完整源码)
查看>>
Objective-C实现MATLAB中Filter函数功能(附完整源码)
查看>>
Objective-C实现matrix chainorder矩阵链顺序算法(附完整源码)
查看>>