MongoDB 为一致读取设置写入关注点的最佳实践是什么



我不是mongo的专家,只是使用我们公司的mongo集群作为我的数据库。群集中有三个主机。我通常会遇到一个数据不一致的问题:插入后立即进行查询,但一无所获。

因此,我将选项'w' : 3的写问题设置为所有插入操作。这给出了我的预期结果。

昨天,其中一个主机出现故障,使群集中的两个主机处于活动状态。所有的只读操作都很好,但由于我的插入操作需要'w': 3写入问题,所以它们永远处于阻塞状态。

我认为将w选项设置为所有机器的数量不是一个好主意,我不应该期望集群中的所有主机都是活动的,甚至更重要的是,我认为我的代码不应该有关于集群的那些细节,节点故障是在集群内处理的。但数据一致性对我来说非常重要,我应该如何配置写问题选项?

使用写问题"多数"来确保您的写入被复制到大多数成员。

再加上对阅读的关注,"多数"会让你读自己写的东西保持一致。

参见因果一致性和读写问题

最新更新