Elasticsearch基础分布式架构

写在前面的话:读书破万卷,编码如有神
--------------------------------------------------------------------

参考内容:

  《Elasticsearch顶尖高手系列-快速入门篇》,中华石杉

--------------------------------------------------------------------

主要内容包括:

  • Elasticsearch对复杂分布式机制的透明隐藏特性
  • Elasticsearch的垂直扩容与水平扩容
  • 增加或减少节点时的数据rebalance
  • master节点
  • 节点平等的分布式架构
  • primary shard和replica shard机制再次梳理
  • 单node环境下创建index是什么样子的

--------------------------------------------------------------------

1、Elasticsearch对复杂分布式机制的透明隐藏特性

Elasticsearch是一套分布式系统,分布式是为了应对大数据量。

Elasticsearch隐藏了复杂的分布式机制:

  • 分片:我们之前随随便便就将一些document插入到es集群中去了,我们没有关心过数据是如何进行分配的、数据到哪个shard中去了。
  • 集群发现机制(cluster discovery):如果启动一个新的es进程,那么这个es进程会作为一个node并且发现es集群,然后自动加入进去。
  • shard负载均衡:举例,假设现在有3个节点,总共有25个shard要分配到3个节点上去,es会自动进行均分分配,以保证每个节点的均衡的读写负载请求
  • shard副本
  • 请求路由
  • 集群扩容
  • shard重分配

--------------------------------------------------------------------
2、Elasticsearch的垂直扩容与水平扩容

扩容方案:

  6台服务器,每台容纳1T的数据,马上数据量要增长到8T,这个时候有两个方案。

(1)垂直扩容:重新购置两台服务器,每台服务器的容量就是2T,替换掉老的两台服务器,那么现在6台服务器的总容量就是 4 * 1T + 2 * 2T = 8T。

(2)水平扩容:新购置两台服务器,每台服务器的容量就是1T,直接加入到集群中去,那么现在服务器的总容量就是8 * 1T = 8T

垂直扩容:采购更强大的服务器 ,成本非常高昂,而且会有瓶颈,假设世界上最强大的服务器容量就是10T,但是当你的总数量达到5000T的时候,你要采购多少台最强大的服务器啊。

水平扩容:业界经常采用的方案,采购越来越多的普通服务器,性能比较一般,但是很多普通服务器组织在一起,就能构成强大的计算和存储能力。

--------------------------------------------------------------------
3、增加或减少节点时的数据rebalance

比如现在有4个node,其中3个node中有一个shard,1个node中有2个shard,但是这个时候如果有一个新的node加入进来,则es会自动把其中一个shard分配到刚加入的node上去。

--------------------------------------------------------------------
4、master节点

一个es集群中总会有一个node是master节点:

  • 管理es集群的元数据:比如说索引的创建和删除、维护索引元数据;节点的增加和移除、维护集群的数据
  • 默认情况下,会自动选择出一台节点作为master节点
  • master节点不承载所有的请求,所以不会是单点瓶颈

--------------------------------------------------------------------
5、节点平等的分布式架构

(1)节点对等,每个节点都能接收所有的请求

(2)自动请求路由:任何一个节点接收到请求后,都可以把这个请求自动路由到相关节点上去处理该请求。

(3)响应收集:最原始节点会从其他节点接收响应数据,然后把这些数据返回给客户端。

--------------------------------------------------------------------

6、primary shard 和 replica shard机制再次梳理

(1)一个索引(index)包含多个shard

(2)每个shard都是一个最小工作单元,承载部分数据,lucene实例,完整的建立索引和处理请求的能力。

(3)增减节点时,shard会自动在nodes中负载均衡。

(4)primary shard和replica shard,每个document肯定只存在于某一个primary shard以及其对应的replica shrad中,不可能存在于多个primary shard。

(5)replica shard是primary shard的副本,负责容错,以及承担读请求负载。

(6)primary shard的数量在创建索引的时候就固定了,replica shard的数量可以随时修改。

(7)primary shard的默认数量是5,replica shrad默认数量是1。

(8)primary shard不能和自己的replica shard放在同一个节点上(否则节点宕机时,primary shard和replica shard都丢失了,起不到容错的作用。),但是可以和其它primary shard的replica shard放在同一个节点上。

--------------------------------------------------------------------

7、单node环境下创建index是什么样子的

(1)单node环境下,创建一个index: 有3个primary shard、3个replica shard

(2)集群状态是yellow

(3)这个时候,只会将3个primary shard分配到仅有的一个node上去,另外3个replica shard是无法分配的

(4)集群可以正常工作,但是一旦出现节点宕机,数据全部丢失,而且集群不可用,无法承担任何请求

原文地址:https://www.cnblogs.com/xinhuaxuan/p/8449628.html

时间: 2024-08-30 07:36:05

Elasticsearch基础分布式架构的相关文章

ElasticSearch 的基础分布式架构

1.Elasticsearch对复杂分布式机制的透明隐藏特性2.Elasticsearch的垂直扩容与水平扩容3.增减或减少节点时的数据rebalance4.master节点5.节点对等的分布式架构 -------------------------------------------------------------------------------------------------------------------- 1.Elasticsearch对复杂分布式机制的透明隐藏特性 El

Elasticsearch 顶尖高手(7)—剖析Elasticsearch的基础分布式架构

1.Elasticsearch对复杂分布式机制的透明隐藏特性 Elasticsearch是一套分布式的系统,分布式是为了应对大数据量 隐藏了复杂的分布式机制 分片机制,cluster discovery(集群发现机制),shard负载均衡 ,shard副本,请求路由,集群扩容,shard重分配 2.Elasticsearch的垂直扩容与水平扩容 垂直扩容:采购更强大的服务器,成本非常高昂,而且存在瓶颈. 水平扩容:业界经常采用的方案,采购越来越多的普通服务器.性能比较一般,但是很多普通服务器组织

编程随笔-ElasticSearch知识导图(2):分布式架构

1. 集群结构 ??在我们探究ES的分布式架构之前,我们使用一个简单的导图描述一下我们在设计分布式系统时会考虑的问题,如图1所示.??带着图1中的问题我们来探究一下ES集群,ES集群是一个典型的主从结构,从某种意义上来说,符合现今大多数主流分布式存储.分布式计算系统的审美要求.下面我们逐步来了解集群中的这些东东.??先用来自文献2的一张集群结构图开始我们的探究. 1.1 集群节点 ??在ES集群中,一个ES实例就是一个节点(node),图2中显示的是三个节点的一个集群.集群中有一个主节点(mas

一文读懂分布式架构知识体系(内含超全核心知识大图)

作者 | 晓土  阿里巴巴高级工程师 姊妹篇阅读推荐:<云原生时代,分布式系统设计必备知识图谱(内含22个知识点)> 导读:本文力求从分布式基础理论.架构设计模式.工程应用.部署运维.业界方案这几大方面,介绍基于 MSA(微服务架构)的分布式知识体系大纲,从而对 SOA 到 MSA 进化有着立体的认识:从概念上和工具应用上更近一步了解微服务分布式的本质,身临其境的感受如何搭建全套微服务架构的过程. 关注“阿里巴巴云原生”公众号,回复“分布”,即可下载分布式系统及其知识体系清晰大图! 随着移动互

[转帖]一文读懂分布式架构知识体系(内含超全核心知识大图)

一文读懂分布式架构知识体系(内含超全核心知识大图) https://yq.aliyun.com/articles/721007?spm=a2c4e.11153959.0.0.2f464977X7lSdH 作者 | 晓土  阿里巴巴高级工程师 姊妹篇阅读推荐:<云原生时代,分布式系统设计必备知识图谱(内含22个知识点)> 导读:本文力求从分布式基础理论.架构设计模式.工程应用.部署运维.业界方案这几大方面,介绍基于 MSA(微服务架构)的分布式知识体系大纲,从而对 SOA 到 MSA 进化有着立

分布式架构设计之电商平台

分布式架构设计之电商平台 何为软件架构?不同人的答案会有所不同,而我认为一个好的软件架构除了要具备业务功能外,还应该具备一定的高性能.高可用.高伸缩性及可拓展等非功能需求.而软件架构是由业务架构和技术架构两部分组成,因为有了业务结构才会催生出软件架构,进而来满足业务上的需求,所以,在做软件架构设计时,需要分为业务架构设计和技术软件架构设计,二者不可分离哦!那么,接下来就以本人实际工作中的电商平台为例,进行说明电商平台架构设计,因为不同行业产品系统不同业务不同,而催生的系统软件的实现要求及架构设计

windows+nginx+iis+redis+Task.MainForm构建分布式架构 之 (nginx+iis构建服务集群)

本次要分享的是利用windows+nginx+iis+redis+Task.MainForm组建分布式架构,由标题就能看出此内容不是一篇分享文章能说完的,所以我打算分几篇分享文章来讲解,一步一步实现分布式架构:下面将先给出整个架构的核心节点简介,希望各位多多点赞: . 架构设计图展示 . nginx+iis构建服务集群 . redis存储分布式共享的session及共享session运作流程 . redis主从配置及Sentinel管理多个Redis集群 . 定时框架Task.MainForm提

分布式架构

著作权归作者所有.商业转载请联系作者获得授权,非商业转载请注明出处.作者:李小翀链接:http://www.zhihu.com/question/22764869/answer/31277656来源:知乎 系统架构演化历程-初始阶段架构 &lt;img data-rawheight="367" data-rawwidth="516" src="https://pic4.zhimg.com/13bd5a6612620fdf51c8987ab3eb12

高性能、高可用的分布式架构体系(转)

在2B企业服务.云计算.移动互联网领域,专业的云平台服务里,分布式技术为支撑平台正常运作关键性技术.从商业利润和运维成本角度出发,千方百计榨干服务器的每一分性能很大程度上影响着网站的商业价值,因此对性能的追求,成为分布式架构体系中极为重要的考量指标:从用户角度,特别是作为主要收入来源的企业用户的角度出发,保证业务处理的正确性和服务不中断(高可用性)是支撑用户信心的重要来源.高性能,高可用,正确性成为分布式架构体系的关键技术因素. 对于网站产品的的架构体系,可以选择开源或自主研发:如果拥抱开源,则