2014-02-18 69 views
1

我们正在努力寻找解决方案,我们可以在我们的网站上托管数千万个不同大小的图像。我们正在评估Riak和MongoDB。目前Riak看起来很不错,但集群中的所有服务器应该是同类的,因为Riak平等对待每个节点。在异构集群上运行MongoDB

除了事实上,你可以在节点上设置优先级,这很难找到有关MongoDB的信息。我的问题是:

  1. 什么是创建具有广泛不同的规格(CPU,磁盘空间,磁盘速度,数量和内存速度,网络速度)的机器组成的集群的MongoDB的后果是什么?

  2. MongoDB集群可以自动检测并补偿这些差异吗?

我也开放了其他解决方案的想法,其中异构集群将很好地工作。

+0

我第一次听说Riak把所有的服务器视为完全相同,因为硬件越来越便宜,你很可能会及时获得更好的机器,所以IMO不是一个好习惯。 – DarthVader

回答

2

什么是创建具有不同似地规格(CPU,磁盘空间,磁盘速度,数量和存储器速度,网络速度)的机器的构成的簇的MongoDB的结果?

MongoDB中的每个分片都是它自己的mongod,它本身就是一个独立的MongoDB。

它不受别人的表现束缚,所以说你有一个需要更多电源的碎片,你可以升级它的硬件,完成工作。 MongoDB喜欢这样的环境并积极地推广它们。

MongoDB集群可以自动检测并补偿这些差异吗?

它并不需要检测,但它会自动补偿,自然离不开内mongosconfigsrv

任何工作其实你会发现,你甚至可以运行不同的MongoDB的版本。

+0

我的意思是:当一个节点A表现不佳(大量流量)时,其他节点(B和C)会通过在集群中占用更多流量来帮助A?你是这个意思吗? – manum

+0

@manum没有那个活动依赖于你的分片键,它们不是复制品,而是分片,它们拥有一个独特的数据范围。我认为你的问题是关于分片 – Sammaye

+0

在[sharded cluster balancer](https://docs.mongodb.com/manual/core/sharding-balancer-administration/)上,它在异构群集上的工作情况与非异构群集? –