我在spring中有以下核心mongo选项配置:
<mongo:mongo host="${db.hostname}" >
<mongo:options
connections-per-host="40"
threads-allowed-to-block-for-connection-multiplier="1500"
connect-timeout="15000"
auto-connect-retry="true"
socket-timeout="60000"
write-number="1"
write-fsync="false"/>
</mongo:mongo>
Run Code Online (Sandbox Code Playgroud)
我想知道的是关于不同的写号选项,它与写无关,正常,安全等问题有关.
我可以假设write-number到writeconcern的映射如下所示吗?
NONE: -1
NORMAL: 0
SAFE: 1 (default)
FSYNC_SAFE: 2
REPLICAS_SAFE: 3
JOURNAL_SAFE: 4
MAJORITY: 5
Run Code Online (Sandbox Code Playgroud)
以下链接为在spring中设置mongo选项提供了很好的帮助,但对于写号值不够具体: 如何配置MongoDB Java驱动程序MongoOptions以供生产使用?
写入关注数是“w”的值,它映射到当 w > 1 时写入必须传播到才被视为成功的副本数。
FSYNC_SAFE 映射到设置 write-fsync (true 或 false),并且由于 JOURNAL_SAFE 也是一个布尔值,我怀疑 Spring 中有类似的布尔设置,但我在他们的任何文档中都找不到它。
如果您已经安装了所有内容来凭经验进行测试,只需尝试几种配置并检查生成的写入问题的实际设置,例如:
WriteConcern wc = new WriteConcern(); // should get your default write concern
System.out.println(wc.getJ());
System.out.println(wc.getFsync());
System.out.println(wc.getW());
Run Code Online (Sandbox Code Playgroud)
这应该显示 Journal 设置、Fsync 设置(均为布尔值)、W(作为 int)。
| 归档时间: |
|
| 查看次数: |
6097 次 |
| 最近记录: |