ES创建索引时,默认为5个主分片和1个副分片。索引创建好后,主分片数量不可修改,只可以修改副分片数量。随着业务的增长,数据量递增,最初的分片设置可能需要进行优化。如果需要修改主分片数量,只能重建新的索引,代价比较大。本文结合日常实际应用,对ES分片优化进行了总结。
分片理论知识
1. 分片数量
总分片数=主分片数*(副分片数+1)
- "settings": {
- "number_of_shards": 1,
- "number_of_replicas": 4
- }
- 复制代码
上面创建索引配置表示,总分片数=1*(1+4),表示总共5个分片。
2. 分片优势
- 通过把分片放在不同节点,可以存储超过单节点容量的数据
- 当主分片节点故障后,可升级一个副分片为新的主分片来应对节点故障
- 增加副分片,可以把数据存储到更多节点上,支持集群扩容和更好处理并发请求
3. 过度分配
单节点环境下,继续采用es的默认分片设置,就属于过度分配。
分片