博客
关于我
强烈建议你试试无所不能的chatGPT,快点击我
MongoDB学习笔记~Mongo集群和副本集
阅读量:7110 次
发布时间:2019-06-28

本文共 1116 字,大约阅读时间需要 3 分钟。

一些概念

对于Mongo在数据容灾上,推荐的模式是使用副本集模式,它有一个对外的主服务器Primary,还有N个副本服务器Secondary(N>=1,当N=1时,需要有一台仲裁服务器Arbiter,当N>1时不需要Arbiter),它们之前是通过内部机制实现同步的,并且当Primary挂了后,它会通过内部的心跳机制,选举别一台Secondary成为一个Primary,与外界(Route)进行通讯。

工业标准

在标准上,我们的副本集推荐使用奇数个服务器(3,5,7,9),但经过我的测试,只要大于两台服务器都是可以的,对于route server和config server我们都开3台server,这样在它们其中一台挂了后,可以从其它两台进行路由指向,而配置信息的使用并不多,只是在路由机启动时才去从配置机拿信息的。

副本集Replica Set

Replica Set使用的是n个mongod节点,构建具备自动的容错功能(auto-failover),自动恢复的(auto-recovery)的高可用方案。也可以使用Replica Set来实现读写分离,通过在连接时指定或者在主库指定slaveOk,由Secondary来分担读的压力,Primary只承担写操作,对于Replica Set中的secondary 节点默认是不可读的,我们可以通过配置来实现它的读写功能(state:1可以读写,state:2不能读写),如果不希望secondary永远不成为primary,可以使用Priority:0,即它的优先级为0,这时它永远不会成为主节点。

secondary的读写配置:state:1可以读写,state:2不能读写

secondary的仲裁配置:arbiterOnly:true

secondary的优先级配置(成为primary的可能性):Priority:3,数字越大,优先级越高

secondary不让它投票:votes:0;

自己也来设计个集群

上面的图只是一个集群的逻辑架构图,而真正到物理架构还是不一样的(即每台服务器的部署及服务器与间的关系),对于两个片的集群来说,物理架构上可能需要4台服务器,2台用到replica set的primary,负责对外读和写及存储s和c(s指路由服务,c指配置服务),2台用于replica set的secondary和Arbiter(仲裁),并把它们交差部署即可,类似这样

其实上面的架构图只是一个说明,具体还要大家去实际自己去配置,去操作,只有真正操作过了,才能有权力说话!呵呵!

本文转自博客园张占岭(仓储大叔)的博客,原文链接:,如需转载请自行联系原博主。

你可能感兴趣的文章
linux下的date详解
查看>>
Myeclipse创建Maven Project 报找不到依赖包错误的解决办法
查看>>
微信营销那些事
查看>>
yii 验证码renderpartial显示问题
查看>>
我的友情链接
查看>>
Linux技巧:一次删除一百万个文件的最快方法
查看>>
Citrix XenServer Slow Network Performance
查看>>
深入理解消息中间件技术之RabbitMQ服务
查看>>
nginx前后端分离
查看>>
mysql忘记密码后如何重置??
查看>>
Bind 9.8 配置 自己动手
查看>>
uWSGI 配置指令介绍
查看>>
ubuntu解压rar文件
查看>>
ORA-00845: MEMORY_TARGET not supported on this system报错解决
查看>>
如何用PLSQL Developer登陆远程服务器
查看>>
启动mac自带的apache服务器,并打开支持的php模块
查看>>
js中用正则表达式 过滤特殊字符, js验证中文字母数字
查看>>
"永恒之蓝"勒索软件病毒防范方法及措施
查看>>
我的友情链接
查看>>
CIO如何在企业并购中生存
查看>>