看了一些资料,现在大家都推荐 MongoDB 高可用好像现在都推荐 Replica Set 。他的选举算法要求服务器数量是奇数。
可是咱就一个小项目,3 台好像太豪华了。
我有点摸不准,请大佬帮忙确定下,3 台是必须的对吗,如果确定的话,我就理直气壮的申请机器去了。
可是咱就一个小项目,3 台好像太豪华了。
我有点摸不准,请大佬帮忙确定下,3 台是必须的对吗,如果确定的话,我就理直气壮的申请机器去了。

1 zsj1029 Feb 5, 2024 小项目 docker 跑个实例就够了,再不行,三个实例,不是必须三个物理机 |
2 standchan Feb 5, 2024 你要高可用,主备是肯定的。至于 mongodb 是要几台就按官方最佳实践来呗。 不能典型的”既要,又要“ |
3 ltkun Feb 5, 2024 啥叫高可用?三台是起步吧 |
4 msmmbl OP @zsj1029 谢谢,那从物理机角度来看,是否 2 台物理机就够了,一个运行 1 个实例,一个运行 2 个实例。这样即使一个物理机出现硬件故障了需要停机,这样还有一台物理机在线。也满足 Repica Set 服务器数量是奇数的要求。 |
5 Maboroshii Feb 5, 2024 via Android 物理机还需要尽可能隔离(比如电力,网络) |
7 libook Feb 5, 2024 理论上你可以在一个操作系统上同时跑 3 个实例组 Replica Set 。 看你要不要可用性,不要可用性的话就单节点,挂了就停服务维修。要可用性就用官方推荐方案,除非你是 Mongo 专家知道如何配置方案。 如果用云数据库的话,通常也是三节点,1 主、1 从、1 隐藏从,云服务器因为特殊的虚拟化方案通常自己搭建数据库 IO 性能会比云数据库差很多,物理机自己搭建的话会有更多的可用性、完整性要求。 |
8 lenmore Feb 5, 2024 推荐 3 个节点 但是预算实在紧张,可以考虑 1 主 1 从 + 1 个 Arbiter ,参考: https://www.mongodb.com/docs/manual/core/replica-set-arbiter/ |