序言

Elasticsearch技术解析与实战--shard&replica机制-LMLPHP

1、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放在    同一个节点上

2、单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
}
}

3、2个node环境下replica shard是如何分配的

  (1)replica shard分配:3个primary shard,3个replica shard,1 node

  (2)primary ---> replica同步

  (3)读请求:primary/replica

05-11 22:03