主要知识点:

 
 

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

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

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

4、master节点

5、节点对等的分布式架构

 
 

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

 
 

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

 
 

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

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

(1)、分片机制(我们之前随随便便就将一些document插入到es集群中去了,我们有没有care过数据怎么进行分片的,数据到哪个shard中去,es会自动帮我们实现这些功能)

(2)、cluster discovery(集群发现机制,我们之前在做那个集群status从yellow转green的实验里,直接启动了第二个es进程,那个进程作为一个node自动就发现了集群,并且加入了进去,还接受了部分数据,ES会自动发现集群,并自动为这些新加入的集群分配replica shard,并接收数据保持负载均衡)

(3)、shard负载均衡(举例,假设现在有3个节点,总共有25个shard要分配到3个节点上去,es会自动进行均匀分配,以保持每个节点的均衡的读写负载请求)

(4)、shard副本,请求路由,集群扩容,shard重分配等。

 
 

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

 
 

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

假设现在有6台服务器,每台服务器1T的容量,如果现在有8T的数据,此时就有两种方案。

(1)、垂直扩容:或者重新购置两台服务器,每台2T,替换掉原来的2台老的服务器。这种方法要采购更强大的服务器,
成本非常高昂,而且会有瓶颈,假设世界上最强大的服务器容量就是10T,但是当你的总数据量达到5000T的时候,你要采购多少台最强大的服务器啊。

(2)、水平扩容:直接再增加两台一T的服务器,放入集群中,这是业界经常采用的方案,采购越来越多的普通服务器,性能比较一般,但是很多普通服务器组织在一起,就能构成强大的计算和存储能力

成本需求分析

普通服务器:1T,1万,100万

强大服务器:10T,50万,500万

 
 

(3)、扩容对应用程序的透明性,应用程序的所有操作均是针对ES集群,而不会关心是否已扩容,所以扩容后对应用程序的使用无影响。

 
 

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

 
 

3、增减或减少节点时的数据自动rebalance,这样ES会自动调节各个shard的负载,保持负载均衡

 
 

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

 
 

4、master节点

es集群中总会有一个master节点,主要任务是管理元数据:索引创建或删除,维护索引元数据,节点的增加和移出,维护集群的元数据。默认情况下,es集群会自动选出一个节点作为master节点,mater节点不承载所有的请求,不会存在单点瓶颈的情况。主要功能:

(1)创建或删除索引

(2)增加或删除节点

 
 

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

 
 

5、节点对等的分布式架构

 
 

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

(2)任何一个节请接收到请求后,都可以自动把这个请求路由到有相关数据的其他节点去处理这个请求。

(3)最原始的收到请求的节点会负责收集其他节点的响应数据,最后把这个数据返回给客户端。

 
 

以下是分布式系统的图解

 
 

9.简单理解ES分布式的更多相关文章

  1. 【原创】分布式之数据库和缓存双写一致性方案解析(三) 前端面试送命题(二)-callback,promise,generator,async-await JS的进阶技巧 前端面试送命题(一)-JS三座大山 Nodejs的运行原理-科普篇 优化设计提高sql类数据库的性能 简单理解token机制

    [原创]分布式之数据库和缓存双写一致性方案解析(三)   正文 博主本来觉得,<分布式之数据库和缓存双写一致性方案解析>,一文已经十分清晰.然而这一两天,有人在微信上私聊我,觉得应该要采用 ...

  2. git的简单理解及基础操作命令

    前端小白一枚,最近开始使用git,于是花了2天看了廖雪峰的git教程(偏实践,对于学习git的基础操作很有帮助哦),也在看<git版本控制管理>这本书(偏理论,内容完善,很不错),针对所学 ...

  3. 【转】快速理解Kafka分布式消息队列框架

     from:http://blog.csdn.net/colorant/article/details/12081909 快速理解Kafka分布式消息队列框架 标签: kafkamessage que ...

  4. 【转】Raft 为什么是更易理解的分布式一致性算法

    编者按:这是看过的Raft算法博客中比较通俗的一篇了,讲解问题的角度比较新奇,图文并茂,值得一看.原文链接:Raft 为什么是更易理解的分布式一致性算法 一致性问题可以算是分布式领域的一个圣殿级问题了 ...

  5. 简单理解Zookeeper的Leader选举【转】

    Leader选举是保证分布式数据一致性的关键所在.Leader选举分为Zookeeper集群初始化启动时选举和Zookeeper集群运行期间Leader重新选举两种情况.在讲解Leader选举前先了解 ...

  6. 简单理解Zookeeper的Leader选举

    Leader选举是保证分布式数据一致性的关键所在.Leader选举分为Zookeeper集群初始化启动时选举和Zookeeper集群运行期间Leader重新选举两种情况.在讲解Leader选举前先了解 ...

  7. Elasticsearch学习系列七(Es分布式集群)

    核心概念 集群(Cluster) 一个Es集群由多个节点(Node)组成,每个集群都有一个共同的集群名称作为标识 节点(Node) 一个Es实例就是一个Node.Es的配置文件中可以通过node.ma ...

  8. 简单理解Struts2中拦截器与过滤器的区别及执行顺序

    简单理解Struts2中拦截器与过滤器的区别及执行顺序 当接收到一个httprequest , a) 当外部的httpservletrequest到来时 b) 初始到了servlet容器 传递给一个标 ...

  9. [转]简单理解Socket

    简单理解Socket 转自 http://www.cnblogs.com/dolphinX/p/3460545.html  题外话 前几天和朋友聊天,朋友问我怎么最近不写博客了,一个是因为最近在忙着公 ...

随机推荐

  1. Gevent的协程实现原理

    之前之所以看greenlet的代码实现,主要就是想要看看gevent库的实现代码. .. 然后知道了gevent的协程是基于greenlet来实现的...所以就又先去看了看greenlet的实现... ...

  2. MongoDB改动、删除文档的域属性实例

    MongoDB改动.删除文档的域属性实例 在站点的开发中,可能最初的设计不合理.或者后期业务的变更,会造成文档结构会有些无用的属性.须要去删除或改动.因为MongoDB 是无 Schema 的,不像关 ...

  3. selenium3 + python - select定位

    一.Select模块(index)     1.导入Select模块.直接根据属性或索引定位     2.先要导入select方法:from selenium.webdriver.support.se ...

  4. [BZOJ1307][ZJOI2008]生日聚会PARTY

    ...一开始用了三维的...甚至尝试把它搞成二维的...后来发现根本没法转移呀... 既然dalao说这是初中题,那它就算是一道初中题吧... dp[i][j][k][p]表示当前有i个男生j个女生, ...

  5. HBase、Hive、MapReduce、Hadoop、Spark 开发环境搭建后的一些步骤(export导出jar包方式 或 Ant 方式)

    步骤一 若是,不会HBase开发环境搭建的博文们,见我下面的这篇博客. HBase 开发环境搭建(Eclipse\MyEclipse + Maven) 步骤一里的,需要补充的.如下: 在项目名,右键, ...

  6. SQLServer 里的三种条件判断的用法:Where GroupBy Having

    HAVING 子句对 GROUP BY 子句设置条件的方式与 WHERE 子句和 SELECT 语句交互的方式类似.WHERE 子句搜索条件在进行分组操作之前应用:而 HAVING 搜索条件在进行分组 ...

  7. 努比亚 Z17(Nubia NX563J) 解锁BootLoader 并刷入recovery

    工具下载链接:https://pan.baidu.com/s/1mjEzcyG 备用下载链接:https://pan.baidu.com/s/1eTdx6Zg 密码:1d3r 本篇教程教你如何傻瓜式解 ...

  8. 【VB】时间戳转日期

    DateAdd("s", TimeStamp / 1000, "1970-01-01 00:00:00")

  9. Deutsch lernen (05)

    1. die Wahrheit, -en 真理:  - 真言,实情 Wir sollen die Wahrheit festhalten. 坚持:紧握 Im Wein liegt Wahrheit. ...

  10. MSP430之section(1)

    1 Intro The smallest unit of an object file is a section. A section is a block of code or data that ...