diff --git a/docs/07.分片和副本.md b/docs/07.分片和副本.md index 10764a0..5de46bc 100644 --- a/docs/07.分片和副本.md +++ b/docs/07.分片和副本.md @@ -4,12 +4,22 @@ Elasticsearch集群允许系统存储的数据量超过单机容量,实现这 在一个索引index中,数据(document)被分片处理(sharding)到多个分片上。Elasticsearch屏蔽了管理分片的复杂性,使得多个分片呈现出一个大索引的样子。 + +有点类似于数据库的分库分表,将一个索引里的数据分到不同的分片中。 + +在写入过程中,通过相应的路由手段(默认规则是分片编号=hash(_id)%总分片数)写入相应的分片。 + +在查询过程中,会分别查询所有分片并将结果汇总得到最终查询结果,这样就可以将非常大量的索引数据分散到不同的分片中,由于每个分片的查询都使用一个线程,这样可以有效地减小单次查询的时延。 + ## 副本(replica) 为了提升访问压力过大是单机无法处理所有请求的问题,Elasticsearch集群引入了副本策略replica。 副本策略对index中的每个分片创建冗余的副本,处理查询时可以把这些副本当做主分片来对待(primary shard),此外副本策略提供了高可用和数据安全的保障,当分片所在的机器宕机,Elasticsearch可以使用其副本进行恢复,从而避免数据丢失。 +副本数量比较好选,根据你需要的可用性选择就好。另外,副本越多,写入消耗就越大(相当于写了不止一份的数据)。 + + 副本的作用如下: