但是要怎么做才可以扩展我们的搜索使之大于6个节点?
主分片的数量在创建索引时已经给定。实际上,这个数字定义了能存储到索引里数据的最大数量(实际的数量取决于你的数据、硬件和使用情况)。当然,读请求——搜索和文档检索——能够通过主分片或者复制分片处理,所以数据的冗余越多,我们能处理的搜索吞吐量就越大。
复制分片的数量可以在运行中的集群中动态地变更,这允许我们可以根据需求扩大或者缩小规模。让我们增加复制分片的数量,从原来的1
变成2
:
PUT /blogs/_settings
{
"number_of_replicas" : 2
}
增加number_of_replicas
到2:
从图中可以看出,blogs
索引现在有9个分片:三个主分片和6个复制分片。这意味着我们能够扩展到9个节点,再次的变成每个节点一个分片。这样使我们的搜索性能相比标准的三节点集群扩展三倍。
注意:
当然,只是有更多的复制分片在同样数量的节点上并不能提高我们的性能,因为每个分片都要访问更小比重的节点资源(译者注:大部分请求都聚集到了分片少的节点,导致一个节点吞吐量太大,反而降低性能)。你需要增加硬件来提高吞吐量。
不过这些额外的复制节点意味着我们有更多的冗余:通过以上对接点的设置,我们更够承受两个节点故障而不丢失数据。