复述,如何实现MongoDB的每个盘功能

介绍

这篇文章主要为大家展示了“复述,如何实现MongoDB的每个盘功能”,内容简而易懂,条理清晰,希望能够帮助大家解决疑惑,下面让小编带领大家一起研究并学习一下“复述,如何实现MongoDB的每个盘功能”这篇文章吧。

MongoDB在写操作时,默认不会等数据写完后才返回,你可以通过使用每个盘命令来保证你的写是成功的。

说白了,MongoDB的写是异步的,返回给客户端成功但其写并不一定成功,而且在多个数据结点进行复制的时候,更无法保证数据同步到其它结点上.getLastError就是为此而生的,你指定一个条件,然后这个函数会一直阻塞到服务端告知这个条件满足了才会返回值。(当然,为了防止死等,这个函数还有一个超时参数),例子:

db.runCommand({每个盘:1,w: 2})

上面命令表示等写操作被写到两个结点再返回成功。

这一功能使得数据安全性的保证更加灵活。

而最近有朋友在复述上也实现了这一功能,实现的方式不是修改复述,源码,而是使用现有的功能拼得出,具体过程如下:

复述,怎样实现MongoDB的每个盘功能

1。ClientSUBSCRIBEstoKEYon *奴隶*

2. clientwriteskey (e.g.setfoobar) tomaster

3。ClientpublishesKEYtomaster

由于复述的单线程写操作,下面两个操作会被顺序执行

4。MasterwillreplicateKEYtoslave

5 masterwillpropogate * PUBLISHKEY * toslave

最后,在主同步完数据后,客户端会收到订阅的消息:

6. getskeyeventonsubscribe !

以上是“复述,如何实现MongoDB的每个盘功能”这篇文章的所有内容,感谢各位的阅读!相信大家都有了一定的了解,希望分享的内容对大家有所帮助,如果还想学习更多知识,欢迎关注行业资讯频道!

复述,如何实现MongoDB的每个盘功能