分片与备份
-
分片分为两种,主分片和副本:
-
主分片用于解决数据水平扩张问题,通过分片将数据分布到集群的所有节点上
- 一个分片是一个运行的ES实例
- 分片数载索引创建时指定,后续不允许修改,处分reindex
-
副本用以解决数据高可用的问题,副本是主分片的拷贝
- 副本分片数,可以动态调整
- 增加副本数,还可以在一定程度上提高服务的高可用(读取的吞吐)
-
-
分片的设定
-
分片的设置过大,数量少
- 导致后续无法增加节点实现水平扩展
- 单个分片数据量过大,导致数据重新分片耗时
-
分片设置的过小,数量多
- 影响搜索结果的相关性打分,影响数据统计的准确性
- 单个节点上过多分片,会导致资源浪费,同时会影响性能
- 7.0之后,默认分片是1,解决了over-sharding的问题
- shard也是一种资源,shard过多会影响集群的稳定性。因为shard过多,元信息会变多,这些元信息会占用堆内存。shard过多也会影响数据读写性能,因为每个读写请求都需要一个线程。
-