【发布时间】:2013-01-29 05:00:21
【问题描述】:
我们将 Mongo DB 用于基于 Java Java EE 的应用程序。 我们使用一个主和两个辅助作为 Mongo DB 集群的一部分 作为我们架构的一部分,Mongo DB 不断被读取/更新/写入。
因此,当我们从 Mongo DB 执行提取操作时,我们会收到脏读(零值)。
为了解决这个问题,我尝试将其配置为读取操作始终从主节点本身获取,而写入/更新可以转到主节点/次节点。
如果这可能,请告诉我(始终从主要读取并使用主要/次要的任何东西进行写入/更新)
这样的设计会有什么负面影响吗?
【问题讨论】:
-
“任何负面影响” - 显然,您的主节点现在是瓶颈,因为它必须同时处理读取和写入。如果网络已经饱和,或者您进行了昂贵的更新(阻止了读者),那么您就有麻烦了。
-
另外,您只能写入主文件。你不能写到中学。
-
谢谢,有道理,我会排除这种尝试。
-
知道如何避免脏读吗??
-
我认为
Dirty Reads意味着程序在其他人提交写入之前获得了未提交的数据。但在你的情况下,看起来你想尽快得到别人写的数据。如果我明白你的意思,也许你可以将数据的 ASAP 部分移动到一些超级牛驱动的大内存和快速磁盘主机,一个节点,没有辅助节点。
标签: java mongodb jakarta-ee