我正在尝试定义生产分片mongoDB服务器的架构,我在文档中看到每个分片必须包含3个副本集。我希望拥有分片优势(能够根据分片密钥在节点中计算分布式查询(和复制故障切换功能,但可以减少预算(和服务器数量(。
这个想法是使用7GB RAM和2核2GHz:的小型机器
我一直在搜索,发现有些人正在安装以下模式中共享节点的碎片的不同副本:
Server 1: shard1, rep-shard2, arbitrer3
Server 2: shard2, rep-shard3, arbitrer1
Server 3: shard3, rep-shard1, arbitrer2
我使用docker尝试过,它很有效,但我不知道通过与副本集和碎片共享同一节点是否会出现任何性能问题。
另一种选择是使用以下模式的4个集群和2个碎片,我不太喜欢(多1个节点,少1个碎片(,但在性能方面可能会更好。
Server1: shard1,
Server2: rep-shard1 arbitrer2
Server3: shard2,
Server4: rep-shard2 arbitrer1
复制用于容错;分片用于性能(扩展(。
如果总共有3台服务器,则只需设置一个3节点的复制副本集。
你的帖子滥用了一些术语,很难弄清楚你在说什么"3个复制集";例如意味着涉及9个或更多个服务器。