前往小程序,Get更优阅读体验!
立即前往
首页
学习
活动
专区
工具
TVP
发布
社区首页 >专栏 >ElasticSearch 副本分片

ElasticSearch 副本分片

作者头像
smartsi
发布2019-08-07 11:37:13
1.2K0
发布2019-08-07 11:37:13
举报
文章被收录于专栏:SmartSi

1. 副本分片

到目前为止,我们只讨论了主分片,但是我们还有另一个工具:副本分片。副本分片的主要目的是为了故障转移(failover),如深入集群生命周期所述:如果持有主分片的节点挂掉了,则一个副本分片会提升为主分片的角色。

在索引写入时,副本分片做着与主分片相同的工作。新文档首先被索引进主分片然后再同步到其它所有的副本分片。增加副本数并不会增加索引容量。

但是,副本分片可以为读取请求提供帮助。如果通常情况下,你的索引搜索占很大比重(偏向于查询使用),则可以通过增加副本数量来增加搜索性能,但这样你也会为此付出占用额外的硬件资源的代价。

让我们回到那个具有两个主分片的索引示例中。我们通过添加第二个节点来增加索引的容量。添加更多节点不会帮助我们提升索引写入能力,但是我们可以在搜索时通过增加副本分片的的个数来充分利用额外硬件资源:

代码语言:javascript
复制
PUT /my_index/_settings
{
  "number_of_replicas": 1
}

拥有两个主分片,另外加上每个主分片的一个副本,我们总共拥有四个分片:每个节点一个,如下图所示:

2. 通过副本进行负载均衡

搜索性能取决于最慢节点的响应时间,所以尝试均衡所有节点的负载是一个好想法。如果我们只是增加一个节点而不是两个,最终我们会有三个节点,其中两个节点只拥有一个分片,另一个节点拥有两个分片做着两倍的工作。

我们可以通过调整分片副本数量来平衡这些。通过分配两个副本,最终我们会拥有六个分片,刚好可以平均分给三个节点

代码语言:javascript
复制
PUT /my_index/_settings
{
  "number_of_replicas": 2
}

作为奖励,我们同时提升了我们的可用性。我们可以容忍丢失两个节点而仍然保持一份完整数据的拷贝。

如下图所示:

事实上节点 3 拥有两个副本分片,没有主分片并不重要。副本分片与主分片做着相同的工作。它们只是扮演着略微不同的角色。没有必要确保主分片均匀地分布在所有节点中。

ElasticSearch版本:2.x

原文:Replica Shards

本文参与 腾讯云自媒体同步曝光计划,分享自作者个人站点/博客。
原始发表:2016-11-02,如有侵权请联系 cloudcommunity@tencent.com 删除

本文分享自 作者个人站点/博客 前往查看

如有侵权,请联系 cloudcommunity@tencent.com 删除。

本文参与 腾讯云自媒体同步曝光计划  ,欢迎热爱写作的你一起参与!

评论
登录后参与评论
0 条评论
热度
最新
推荐阅读
目录
  • 1. 副本分片
  • 2. 通过副本进行负载均衡
相关产品与服务
负载均衡
负载均衡(Cloud Load Balancer,CLB)提供安全快捷的流量分发服务,访问流量经由 CLB 可以自动分配到云中的多台后端服务器上,扩展系统的服务能力并消除单点故障。负载均衡支持亿级连接和千万级并发,可轻松应对大流量访问,满足业务需求。
领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档