我正在尝试为生产分片的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
答案 0 :(得分:0)
复制用于容错;分片用于性能(横向扩展)。
如果总共有3台服务器,则只需设置3节点副本集。
您的帖子滥用了某些术语,这使得弄不清您在说什么。例如,“ 3个副本集”表示涉及9个或更多服务器。