我的第一个问题真的很简单,我只想知道我是否可以在我的分片/副本集群中混合 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/