首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >在MongoDB和ElasticSearch之间进行选择-缩放/分片

在MongoDB和ElasticSearch之间进行选择-缩放/分片
EN

Stack Overflow用户
提问于 2018-06-08 05:29:33
回答 1查看 316关注 0票数 1

我目前正在决定将MongoDB和Elasticsearch作为日志和分析平台的后端。我计划使用一个由5服务器组成的集群,每个服务器都有64 in内存和一个500 in驱动器。对于一个副本集,它应该支持我猜测的数据的1TB+。

根据我在Elasticsearch上所读到的,上述服务器的推荐设置将是5-10个碎片,但是如果不进行大规模迁移,碎片在将来就无法增加。因此,也许我可以为相同的索引向集群多添加5个服务器/节点,但不能添加10或20个,因为我不能创建更多的碎片来分布在新的节点/服务器上--对吗?

MongoDB似乎会根据键值自动管理切分,并在添加更多节点时重新分配这些碎片。那么,这是否意味着将来我可以向集群中再添加50个服务器,而MongoDB将很高兴地将这个索引中的数据传播到所有服务器上?

我现在基本上只需要1TB的存储,但是不想把自己画到一个角落,如果这个数据集最终增长到100 1TB的话。

如果在开始时不启动带有100个碎片的Elasticsearch (这似乎是一种低效和糟糕的实践),那么它如何为这个单一数据集扩展到超过5/10服务器呢?

EN

回答 1

Stack Overflow用户

回答已采纳

发布于 2018-06-10 13:50:46

  1. 正如Val所说,您通常会有基于时间的索引,因此您可以很容易地(以一种性能良好的方式)在一定的保留期后删除数据。因此,随着时间的推移,您的需求会发生变化,因此您将更改碎片编号(通常通过索引模板)。
  2. 当前版本的Elasticsearch现在支持一个 API,它完全符合您的要求:最初使用5个碎片,但是可以选择提高到20的任何因子(例如)--所以5 -> 10 -> 30将是选项。
  3. 如果有5个主碎片,复制因子为1,则仍然可以将负载分散到10个节点上:写入5个主碎片和5个副本碎片;读取将传递到其中任何一个节点。Elasticsearch的写/读模型与MongoDB的一般不同。

PS免责声明:我现在为弹性公司工作,但我在生产中使用MongoDB已经5年了。

票数 1
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/50753917

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档