ElasticSearch--集群搭建(十一)

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

  Elasticsearch是一套分布式的系统,分布式是为了应对大数据量隐藏了复杂的分布式机制。
分片机制(我们之前随随便便就将一些document插入到es集群中去了,我们有没有关注过数据怎么进行分片的,数据到哪个shard中去)。
  cluster discovery(集群发现机制,我们直接启动了第二个es进程,那个进程作为一个node自动就发现了集群,并且加入了进去,还接受了部分数据,replica shard)。
  shard负载均衡(举例,假设现在有3个节点,总共有25个shard要分配到3个节点上去,es会自动进行均匀分配,以保持每个节点的均衡的读写负载请求)。

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

垂直扩容:采购更强大的服务器,成本非常高昂,而且会有瓶颈,假设世界上最强大的服务器容量就是10T,但是当你的总数据量达到5000T的时候,你要采购多少台最强大的服务器。
水平扩容:业界经常采用的方案,采购越来越多的普通服务器,性能比较一般,但是很多普通服务器组织在一起,就能构成强大的计算和存储能力。

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

  当节点不平均的时候,总有一些节点的负载会重一些,通过内部机制会始终使集群保持最佳的负载均衡状态。
1、master节点
(1)创建或删除索引
(2)增加或删除节点
(3)master节点不承载所有节点的请求,所以不会是一个单点瓶颈。
2、节点对等的分布式架构
(1)节点对等,每个节点都能接收所有的请求。
(2)自动请求路由 (自动把请求发送到有数据的节点上去)。
(3)响应收集。
3、shard & replica 机制
(1)index包含多个shard
(2)每个shard都是一个最小工作单元,承载部分数据,lucene实例,完整的建立索引和处理请求的能力。
(3)增减节点时,shard会自动在nodes中负载均衡。
(4)primary shard 和 replica shard,每个 document 肯定只存在于某一个 primary shard 以及其对应的 replica shard 中,不可能存在于多个 primary shard。
(5)replica shard 是 primary shard的副本,负责容错,以及承担读请求负载。
(6)primary shard 的数量在创建索引的时候就固定了,replica shard 的数量可以随时修改。
(7)primary shard 的默认数量是5,replica 默认是1,默认有10个shard,5个primary shard,5个replica shard。
(8)primary shard 不能和自己的 replica shard 放在同一个节点上(否则节点宕机,primary shard和副本都丢失,起不到容错的作用),但是可以和其他 primary shard 的 replica shard 放在同一个节点上。

4、单 node 环境下创建 index 是什么样子的
(1)单node环境下,创建一个index,有3个primary shard,3个replica shard
(2)集群status是yellow
(3)这个时候,只会将3个primary shard分配到仅有的一个node上去,另外3个replica shard是无法分配的。
(4)集群可以正常工作,但是一旦出现节点宕机,数据全部丢失,而且集群不可用,无法承接任何请求。

PUT /test_index
{
   "settings" : {
      "number_of_shards" : 3,
      "number_of_replicas" : 1
   }
}

5、2个 node 环境下 replica shard 是如何分配的?
(1)replica shard分配:3个primary shard,3个replica shard,1 node。
(2)primary —> replica同步。
(3)读请求:primary / replica。


2个 node 副本分配
  1. 横向扩容过程,如何超出扩容极限,以及如何提升容错性
    (1)primary&replica自动负载均衡,6个shard,3 primary,3 replica。
    (2)每个node有更少的shard,IO/CPU/Memory资源给每个shard分配更多,每个shard性能更好。
    (3)扩容的极限,6个shard(3 primary,3 replica),最多扩容到6台机器,每个shard可以占用单台服务器的所有资源,性能最好。
    (4)超出扩容极限,动态修改replica数量,9个shard(3primary,6 replica),扩容到9台机器,比3台机器时,拥有3倍的读吞吐量。
    (5)3台机器下,9个shard(3 primary,6 replica),资源更少,但是容错性更好,最多容纳2台机器宕机,6个shard只能容纳1台机器宕机。
6个shard只能容纳1台机器宕机
9个shard最多容纳2台机器宕机
最后编辑于
©著作权归作者所有,转载或内容合作请联系作者
平台声明:文章内容(如有图片或视频亦包括在内)由作者上传并发布,文章内容仅代表作者本人观点,简书系信息发布平台,仅提供信息存储服务。

推荐阅读更多精彩内容