MongoDB的replication机制除了最普通的Master/Slave模式之外,更强大的就是其支持自动故障转移的Replica Sets模式了。相对于其问题多多的auto-sharding机制,Replica Sets还是相对比较稳定。
作为MongoDB使用大户,Foursquare(简称4sq) 在MongoDB使用上有相当丰富的经验,下面是4sq的一篇文章,描述了Replica Sets机制在4sq 中的几种架构方式。
原文链接:Fun with MongoDB replica sets
1.在原有的Master/Slave 机制上添加一台arbiter
4sq 在早期有一些Master/Slave的MongoDB架构,但这种模式不能实现自动的故障转移,需要在发生故障时手动进行切换。在Replica Sets出现后,这种结构被迁移成为三台机器的Replica Sets:一台Primary,一台Secondary,一台Arbiter。
迁移过程:
修改Master和slave的配置,添加如下几项,并重启MongoDB。
replSet = auxdb fastsync = true rest = true |
fastsync 使得重启动可以使用到原来的数据文件,重启会非常快。然后再在Primary上用rs.add 和 rs.addArb 将Secondary和Arbiter添加上。就算完成了。
2.一个 Primary用于写,多个Secondary用于读和一个Secondary用于备份
在写多读少的应用中,4sq主要使用了Replica Sets来实现读写分离。通过在连接时指定slaveOk,将读操作放到Secondary上,Primary只承担写操作。同时指定一台priority为0,hidden为true的Secondary来进行备份(这样设置后此机器在读写中都不可见,并且不会被选举为Primary)
3.MongoDB经典配置,上层是Auto-Sharding,每个Sharding结点又是一个Replica Sets
虽然4sq在这上面吃过亏,但很明显他们已经吸取了教训并且在更合理更小心的使用Auto-Sharding这一诱人的功能。
分享到:
相关推荐
Mongodb的Replica Sets + Sharding架构(window篇)
NULL 博文链接:https://star45.iteye.com/blog/2039957
1.分篇章进行学习,内容控制30分钟内 2.1个月疗程,不要放弃治疗哦 3.图文并茂,有问题请发到邮箱
MongoDB实战集群以及系统架构,讲解的很透彻!让你变大神!非常给力,好东西,12月链接失效
使用SpringBoot 对MongoDB副本集进行实现,看读数据与写数据操作,是否会自动分配到从库与主库上,关键点在 uri 连接字符串上
1.分篇章进行学习,内容控制30分钟内 2.1个月疗程,不要放弃治疗哦 3.图文并茂,有问题请发到邮箱
关于mongodb的备份集的检测,优化,部署
MongoDB入门教程 + 架构简析 + java使用MongoDB的简单程序
MongoDB副本集的配置示例,过程简明易懂
使用express和mongodb开发一套使用RESTful架构的博客系统增删改查API.zip
MongoDB架构图分享.pdf MongoDB架构图分享.pdf MongoDB架构图分享.pdf
MongoDB集群架构.pptx
MySQL与MongoDB数据库架构介绍.pptx
我们正在使用 MongoDB 启动 3 个 docker 容器,它们在端口27017 、 27018和27019 。 指示 克隆这个仓库 $ git clone git@github.com:klivan/docker-mongodb-replicaset.git 从 Dockerfile 构建 docker 镜像 $ cd ...
NULL 博文链接:https://tcrct.iteye.com/blog/2108099
Node.js是一套用来编写高性能网络服务器的JavaScript工具包。...《Node应用程序构建——使用MongoDB和Backbone》可以作为学习和掌握Node.js、Backbone.js和MongoDB的实践教程,也适合对这几种技术感兴趣的读者阅读
Node.js是一套用来编写高性能网络服务器的JavaScript工具包。...《Node应用程序构建——使用MongoDB和Backbone》可以作为学习和掌握Node.js、Backbone.js和MongoDB的实践教程,也适合对这几种技术感兴趣的读者阅读
Node应用程序构建——使用MongoDB和Backbone
本课程是一套关于MongoDB应用开发的实战性教程,名为《深入浅出MongoDB应用实战开发(基础、开发指南、系统管理、集群及系统架构)》,教程侧重于讲解MongoDB的常用特性及高级特性,从实际开发的角度出发对MongoDB...
深入浅出MongoDB应用实战集群及系统架构