mongodb - 混合 Linux 和 Windows MongoDB 副本集,对分片来说同等重要的硬件

标签 mongodb replication cluster-computing sharding

我的第一个问题真的很简单,我只想知道我是否可以在我的分片/副本集群中混合 Linux 和 Windows mongodb 服务器,ofc 与 2.2 相同的版本?

对于第二个问题,如果我有使用此硬件的分片服务器,有人可以解释一下会发生什么

  • 服务器 1:高 Cpu、SSD 磁盘
  • 服务器 2:普通 CPU、Sata 磁盘
  • 服务器 3:普通 CPU、SSD 磁盘

当我们拥有不同的硬件服务器时,分片将如何工作?

在硬件几乎相同的机器上构建集群重要吗?

最佳答案

假设(如您所说)MongoDB 版本是等效的,混合 Linux 和 Windows 服务器应该没有问题。

关于硬件的差异,MongoDB 尝试将数据均匀地分布在分片上,每个服务器将使用尽可能多的可用资源以提供尽可能好的性能。当服务器上的另一个进程请求一些资源时,Mongo 将放弃这些资源。这通常意味着将一些数据交换到磁盘,直到有更多 RAM 再次可用。

因为您的服务器会以不同的速度执行此操作以及其他操作,所以重要的问题变成了“当分片中的一台服务器运行缓慢时会发生什么”。根据FAQ :

If a shard is responding slowly, mongos will merely wait for the shard to return results.

因此,在实践中,您的部分分片集合会比其他集合慢,但一切都应该正常工作。如果硬件匹配,您可能会有更好的体验,但并非必须如此。

关于mongodb - 混合 Linux 和 Windows MongoDB 副本集,对分片来说同等重要的硬件,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/12341446/

相关文章:

javascript - 如何在 Meteor 中动态更新/设置集合的子属性?

ruby-on-rails - Ruby On Rails 主从 Postgres 数据库

mongodb - 配置 Mongo 副本集以仅复制某些集合

node.js - NodeJS ZeroMQ,发送没有回调?

angularjs - Node res.render 更改 View 但不更改 url

javascript - 是否有任何 Mongoose 验证库?

c# - 如何解决 "exception of type ' AutoMapper.AutoMapperMappingException' occurred in AutoMapper"- "Error mapping types"?

database - 了解数据库复制机制的最佳来源是什么?

hadoop - 从远程客户端在 Yarn 集群上提交 Spark 作业

hadoop - 如何在多个hadoop集群中将一个节点用作数据节点