writeConcern 可以决定写操作到达多少个节点才算成功。
- 默认:多节点复制集不做任何设定,所以是有可能丢失数据。
w: "majority":大部分节点确认,就视为写成功w: "all":全部节点确认,才视为写成功
journal 则定义如何才算成功。取值包括:
true:写操作落到 journal 文件中才算成功;false:写操作达到内存即算作成功。
【示例】在集群中使用 writeConcern 参数
db.transaction.insert({"count":1}, {"writeConcern":{w:"majoriy"}})
db.transaction.insert({"count":1}, {"writeConcern":{w:"4"}})
db.transaction.insert({"count":1}, {"writeConcern":{w:"all"}})【示例】配置延迟节点,模拟网络延迟
conf=rs.conf()
conf.memebers[2].slaveDelay=5
conf.memebers[2].priority=0
rs.reconfig(conf)