MongoDB 事务

MongoDB 事务

writeConcern 可以决定写操作到达多少个节点才算成功。

  • 默认:多节点复制集不做任何设定,所以是有可能丢失数据。
  • w: "majority":大部分节点确认,就视为写成功
  • w: "all":全部节点确认,才视为写成功

journal 则定义如何才算成功。取值包括:

  • true:写操作落到 journal 文件中才算成功;
  • false:写操作达到内存即算作成功。

【示例】在集群中使用 writeConcern 参数

1
2
3
db.transaction.insert({ count: 1 }, { writeConcern: { w: 'majoriy' } })
db.transaction.insert({ count: 1 }, { writeConcern: { w: '4' } })
db.transaction.insert({ count: 1 }, { writeConcern: { w: 'all' } })

【示例】配置延迟节点,模拟网络延迟

1
2
3
4
conf=rs.conf()
conf.memebers[2].slaveDelay=5
conf.memebers[2].priority=0
rs.reconfig(conf)