Write Concern 写数据的关注
其实,就是在使用MongoDB存储数据时, 对可靠性的要求。
MongoDB 目前支持4种Write Concern。
下面以写入的可靠性有弱到强来介绍。
1 Unacknowledged 翻译成 “无应答”。即客户端只向MongoDB服务器发送写入请求,但是不会等待任何的服务器反馈。显然,这种方式,速度快, 但是可靠性差。
注:一下的三种Write Concern 都是客户端要等待服务器端的应答,主要的区别是,服务器端什么时候应答。
2 Acknowledged 翻译成 “有应答”。即客户端向MongoDB服务器发送写入请求, 客户端等待服务器返回应答, 应答返回成功后,客户端才认为写入操作成功。服务器把写入内容写到服务器的内存中时, 就返回写入成功的应答。
这个是目前默认的Write Concern, 如果没有特殊指定,默认就是这个Write Concern 。
3 Journaled 翻译成“被记录日志”。服务器把写入内容写到服务器的硬盘上, 就返回写入成功的应答。这保证了服务器突然出现异常后,数据不会丢失。
使用这个Write Concern时, 需要打开MongoDB的Journal功能。
4 Replica Acknowledged 翻译成“复制应答”。服务器把写入内容传播到Replica Set上, 才返回写入成功的应答。这保证了复制集上可靠的写入。
综上所述,要想在MongoDB上实现最可靠的写入,需要配置Replica Set(副本集群), 且在写入数据时,使用Replica Acknowledged Write Concern。
翻译和参考:https://docs.mongodb.org/manual/core/write-concern/ mongodb的帮助文档。