所有分片(索引内)是否具有相同的内容?
如果是,更多的分片=更长的传播(保存)时间?
如果不是,则其中一个分片失败=合并时数据不完整?
最佳答案
首先,您需要了解什么是分片以及为什么在像Elasticsearch这样的分布式系统中分片如此重要。您可以阅读有关分片here here和here的一些很好的资源。
现在问您的问题,
答案是否(假设您在这里指的是主分片,当然,副本分片只是主分片的副本),让我们举个例子。
您的索引包含大约1亿个文档,并且您有10个数据节点集群,然后您希望水平扩展索引,因此首先要设置10个主要分片和1个副本分片。在这种情况下,elasticsearch会将您的数据物理上划分为10个主要分片,并且每个主要分片将位于集群的不同节点上,因为有10个数据节点,并且类似于每个主要分片副本,称为副本副本,该副本位于主碎片的另一个节点。
现在是您的后续问题。
由于Elasticsearch不会在所有主分片中存储相同的数据,因此,更多的分片意味着更长的传播或节省时间是无效的,并且也在其中一个分片发生故障时,然后Elasticsearch从其副本分片中恢复其数据,因为其物理存在不同的数据节点服务器。
温馨提示:-分片用于拆分数据并使应用程序水平扩展,而副本则用于使应用程序具有高度可用性,因为它包含重复的数据,因此应用程序可以轻松地从您刚刚提出的要求中恢复您的后续问题。
让我知道您是否需要任何澄清或更多详细信息。