Elasticsearch shard&replica机制

Elasticsearch shard&replica机制

  1. 一个index 包含多个shard

           例如:一个index 包含3T数据,每台服务器可以承载1T数据,设置Primay shard有3个

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

     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。

     8. primary shard 不能和自己的replica shard放在同一个节点上,但可以和其他primary shard 或replica shard放在同一个节点上

 

  •    单node环境下,创建一个Index, 有3个primary shard,3个replica shard
  •    集群status 是yellow
  •    这个时候,只会将3 个primary shard 分配到仅有的一个Node上去,另外3个relica shard是无法分配的
  •    集群可以正常工作,但是一旦出现节点宕机,数据全部丢失,而且集群不可用,无法承接任何请求
PUT /test_index

{

   "settings":{
           "number_of_shards":3,
           "number_of_relicas":1
          }

}

将3 个primary shard 分配到仅有的一个Node上

当集群中有另外一个节点加入,es会自动将未分配的replica shard 分配到新的节点上,并将数据同步过去

 横向扩容过程:

    1) 我们增加一个节点

  2)primary &replica 自动负载均衡,6个shard,3 primary ,3 replica

  3)每个node 有更少的shard,IO/CPU/MEMORY 资源给每个shard分配更多,每个shard性能更好

  4)扩容的极限 ,6个shard,最多扩容到6台机器,每个shard可以占用单台服务器的所有资源,性能最佳

  5)超出扩容极限,动态修改replica数量,9个shard (3 primary 6 replica) 扩容到9台机器上,比3台机器时,拥有3倍的读吞吐量

  6)3台 机器的情况下,9个shard (3 primary 6 repilca ),资源是更少,但是容错性更好,最多容纳2台机器宕机,6个shard 只能容忍1台机器宕机

 

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值