1.shard&replica机制再次梳理
- index包含多个shard
- 每个shard都是一个最小工作单元,承载部分数据,lucene实例,完整的建立索引和处理请求的能力
- 增减节点时,shard会自动在node中负载均衡
- primary shard 和 replica shard ,每个document肯定只存在于某一个primary shard 以及其对应的replica shard中,不可能存在于多个Primary shard
- replica shard是primary shard的副本,负责容错,以及承担读请求负载
- primary shard的数量在创建索引的时候就固定了,replica shard的数量可以随时修改
- primary shard的默认数量是5,replica默认是1,默认有10个shard,5个primary shard,5个replica shard。
- primary shard 不能和自己的replica shard放在同一个节点上(否则节点宕机,primary shard和副本都丢失,起不到容错作用),但是可以和其他primary shard的replica shard放在同一节点上
2.图解单node环境下创建index是什么样子的
- 单node环境下,创建一个index,有3个primary shard,3个replica shard
- 集群status是yellow
- 这个时候,只会将3个primary shard分配到仅有的一个node上去,另外3个replica shard是无法分配的
- 集群可以正常工作,但是一旦出现节点宕机,数据全部丢失,而且集群不可用,无法承接任何请求
PUT /test_index
{
“settings”:{
“number_of_shards”:3,
“number_of_replicas”:1
}
}