写关注
- writeConcern:决定一个写操作落到多少个节点上才算成功。
w取值包括:- 0: 发起写操作不关心是否成功
- 1~集群最大数据节点数:写操作需要被复制到指定节点数才算成功
- majority:写操作需要被复制到大多数节点才算成功
- all:全部节点确认
发起写操作的程序会被阻塞知道写操作到达指定的节点数为止
- journal定义为写操作如何才算成功
- true:写操作落到journal文件才算成功
- false:写操作到达内存及算成功
- wtimeout如果写操作在指定毫秒内无法复制就会返回一个错误
db.test.insert({
count:1}, {
writeConcern:{
w:3, wtimeout:3000}})
写关注有会引入额外的延时,对于一个项目中,是否使用写关注需要仔细考虑
通常只会设置majority,不要设置writeConcern为总节点数,这样的话一个节点挂了所有写操作都会失败,对于普