我正在尝试定义生产分片mongoDB服务器的体系结构,我在文档中看到每个分片必须包含3个副本集。我希望拥有分片的优势(能够根据分片键在节点中计算分布式查询)和复制故障转移功能,但会减少预算(和服务器数量)。
我们的想法是使用7 7GB和2核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发布于 2020-08-17 23:02:47
复制用于容错;分片用于性能(向外扩展)。
如果您总共有3台服务器,那么只需设置一个3节点副本集即可。
你的帖子滥用了一些术语,这使得你很难弄清楚你在说什么。例如,"3个副本集“意味着涉及9个或更多的服务器。
https://stackoverflow.com/questions/63449322
复制相似问题