苏飞论坛

 找回密码
 马上注册

QQ登录

只需一步,快速开始

扫一扫,访问微社区

分布式系统框架(V1.3) 轻松承载百亿数据,千万流量!讨论专区 - 源码下载 - 官方教程

HttpHelper万能框架(V2.3-含.netcore) HttpHelper官方出品,无敌框架讨论区 - 源码下载 - 在线测试和代码生成

HttpHelper爬虫类(V2.0) 最牛的爬虫类,没有爬不到只有想不到 源码 - 代码生成器 - 讨论区 - 教程- 例子

查看: 413|回复: 3

[搜索引擎] 67-Elasticsearch扩容的单元

[复制链接]
发表于 2019-1-14 09:15:34 | 显示全部楼层 |阅读模式
扩容的单元

在 动态更新索引,我们介绍了一个分片即一个 Lucene 索引 ,一个 Elasticsearch 索引即一系列分片的集合。 你的应用程序与索引进行交互,Elasticsearch 帮助你将请求路由至相应的分片。

一个分片即为 扩容的单元 。 一个最小的索引拥有一个分片。 这可能已经完全满足你的需求了 — 单个分片即可存储大量的数据 — 但这限制了你的可扩展性。

想象一下我们的集群由一个节点组成,在集群内我们拥有一个索引,这个索引只含一个分片:

[C#] 纯文本查看 复制代码
PUT /my_index

{

  "settings": {

    "number_of_shards":   1, 

    "number_of_replicas": 0

  }

}



创建一个拥有 1 主分片 0 个副本分片的索引.

这个设置值也许很小,但它满足我们当前的需求而且运行代价低。


当前我们只讨论 主 分片。我们将在 副本分片 讨论 副本 分片。

在美好的一天,互联网发现了我们,一个节点再也承受不了我们的流量。 我们决定根据 图 49 “一个只有一个分片的索引无扩容因子” 添加一个节点。这将会发生什么呢?

一个只有一个分片的索引无扩容因子
elas_4401.png
一个只有一个分片的索引无扩容因子

答案是:什么都不会发生。因为我们只有一个分片,已经没有什么可以放在第二个节点上的了。 我们不能增加索引的分片数因为它是 route documents to shards 算法中的重要元素:

[C#] 纯文本查看 复制代码
shard = hash(routing) % number_of_primary_shards

我们当前的选择只有一个就是将数据重新索引至一个拥有更多分片的一个更大的索引,但这样做将消耗的时间是我们无法提供的。 通过事先规划,我们可以使用 预分配 的方式来完全避免这个问题。

发表于 2019-1-14 09:32:20 | 显示全部楼层
发表于 2019-1-14 19:47:51 | 显示全部楼层
发表于 2019-1-14 20:58:12 | 显示全部楼层
您需要登录后才可以回帖 登录 | 马上注册

本版积分规则

QQ|手机版|小黑屋|手机版|联系我们|关于我们|广告合作|苏飞论坛 ( 豫ICP备17001017号-1)

GMT+8, 2019-8-26 15:03

© 2017-2018

快速回复 返回顶部 返回列表