ES中的关键概念:分片(Shards)和副本(Replicas)
- 分片是索引数据的逻辑分割,每个分片都是一个独立的数据容器,可以独立存储、搜索和恢复。分片的主要目的是水平扩展ES,以处理大量数据
- 副本分片是分片的副本,用来提高数据的可靠性和容错能力。副本分片不参与搜索和写入操作,但在主分片不可用时可以接替其工作
- 在规划集群时,通常会根据集群的预期负载和性能需求来设置分片和副本的数量,可以以此未参考:
- 分片数:根据ES官方建议,每个分片最大约为1GB,对于一个拥有十万用户的数据集,假设每个用户的数据占优约1KB,那么总数据量约为10MB
- 如果我们将每个分片的大小设置为1GB,那么这个集群将需要10分片(10GB/1GB)
- 副本数:副本数量是通常设置为1或更高,这取决于集群的高可用需求和容错能力
- 为了提高可用性,常用的做法是将副本数量设置为与分片数相同,及also have 10 replicas
- 分片数:根据ES官方建议,每个分片最大约为1GB,对于一个拥有十万用户的数据集,假设每个用户的数据占优约1KB,那么总数据量约为10MB
综上所述:
分片数:10
副本数:10
这只是一个基于假设和简化计算的参考值,实际的集群规划还需要考虑:数据访问模式、查询负载、硬件资源限制、以及扩展性等