码迷,mamicode.com
首页 > 其他好文 > 详细

横向扩展(scale horizontally)

时间:2014-05-16 07:47:34      阅读:387      评论:0      收藏:0      [点我收藏+]

标签:des   style   blog   class   c   http   

随着数据增长的需求,应该怎么样扩展ES呢?如果开启第三个node,这个cluster就会变成如下如所示:

bubuko.com,布布扣

从node1和node2各自移出一个shard到node3中,现在在每个node中有两个shard而不是三个了,这意味着每个node的shared共享了其硬件资源,这样每个shard能达到更好的性能。

每一个shard在自己的权利控制范围中都是一个成熟的搜索引擎,并且有能力使用一个单独的node的所有资源。我们这6个shard能最多扩展到6个node,这时候,每个node的每个shard都能拥有这个node的全部的数据。

但是如果我们想扩展到多于6个node该怎么办呢?

 primary shard的数量在index被创建的时候就已经确定了。这个数量也确定了index可以存储的最大的数据量,但是这个最大数据量是和你的数据和硬件环境相关的。然而读请求,文档搜索能被primary处理,也能被replica shard处理,所以,这个repolica shard的大小也决定了ES所能处理搜索吞吐量的大小。

在工作的cluster中replica shard的数量是可以根据需求i动态修改的。如过把blogs的replica shard增加一个如下:

PUT /blogs/_settings
{
   
"number_of_replicas":2
}

 执行后的ES如图:

bubuko.com,布布扣

 正如图中所示,blogs这个index现在已经有9个shard,3个primary shard ,6个replica shard。如果我们在增加三个node到目前的六个node,那么将会在每个node中有一个shard,此时ES能比以前多处理50%的请求。

当然,仅仅是对node增加replica shard并不能提高性能,因为每个shard都要消耗node的资源。你应该通过增加硬件来提高吞吐量。

但是,扩展replica数量的意义在于,我们有更多的数据冗余。通过以上的配置,我们即使丢失了两个node也不会造成数据的丢失。

 

原文:http://www.elasticsearch.org/guide/en/elasticsearch/guide/current/_scale_horizontally.html

横向扩展(scale horizontally),布布扣,bubuko.com

横向扩展(scale horizontally)

标签:des   style   blog   class   c   http   

原文地址:http://www.cnblogs.com/blog1350995917/p/3725575.html

(0)
(0)
   
举报
评论 一句话评论(0
登录后才能评论!
© 2014 mamicode.com 版权所有  联系我们:gaon5@hotmail.com
迷上了代码!