mongodb的架构 副本集搭建

简介: 本人博客 http://blog.teier.cn

早期的版本使用master-slave,一主一从和mysql类型,但slave在此架构中为只读,如果主库宕机后,从库不能自动切换为主 需要手动才行
后期mongodb开发了个新的架构方案副本集,所以呢,目前已经淘汰master-slave的架构 改为可副本集,这种模式有一个主(primary),和多个从(secondary),只读,给他们设置权重,当主宕掉后,权重最高的从切换为主。其他从会自动识别新的主
在次架构还可以建立一个仲裁(arbiter)的角色,它只负责裁决,而不存储数据,它清楚的告诉是否有问题,防止脑裂问题
在此架构中读写数据都是在主上,如果想实现负载均衡的目的需要手动指定读库的目标server
副本集搭建:
我有三台机器分别是192.168.191.21 192.168.191.22 192.168.191.23 其中21为主 22 23为从
1,首先三台机器分别安装mongodb
参照我之前安装mongodb的方法
cd /etc/yum.repos.d
vim mongodb-org-3.4.repo
[mongodb-org-3.4]
name=MongoDB Repository
baseurl=https://repo.mongodb.org/yum/redhat/$releasever/mongodb-org/3.4/x86_64/
gpgcheck=1
enabled=1
gpgkey=https://www.mongodb.org/static/pgp/server-3.4.asc
yum install -y mongodb-org
2,三台机器编辑配置文件
vim /etc/mongod.conf
找到replication 删除# 然后在replication下面 写上如下俩行 记得前面有俩个空格
replication
oplogSizeMB: 20 //类似mysql binlog 20M
replSetName: sonice //副本集的名称
找到bindIp后面的127.0.0.1加上本机的内网ip 21,22,23
3,分别重启三台机器
systemctl restart mongod
4,连接主,在主上运行命令mongo
use admin
config={_id:”sonice”,members:[{_id:0,host:”192.168.191.21:27017″},{_id:1,host:”192.168.191.22:27017″},{id:2,host:”192.168.191.23:27017″}]}
// 其中sonice为副本集的名称 ,id为0的 是 主 其他id为1和2的是从
5,初始化
rs.initiate(config) //返回ok:1为正确
配置完之后 使用rs.status() 查看副本集的状态
如果俩个从上的状态为”stateStr”:”STARTUP”,则重新配置一遍即可
再次使用rs.status() 会发现从的状态变为SECONDARY 主的状态为STARTUP
mongodb的权重设置
使用rs.config 查看三台机器的priority 权重都是 1
更改他们的权重 ,设置一个变量 用索引的方式 来设置权重
首先进入主的mongo里面 执行下面5行操作
cfg = rs.config()
cfg.members[0].priority = 3
cfg.members[0].priority = 3
cfg.members[0].priority = 3
rs.reconfig(cfg)
这样设置下来 用rc.status() 可以看到21的主上机器权重为3 22的权重为2 23的权重为1
这样 当21宕了 会优先跳到22上 , 当21恢复后又跳回21为主了

相关文章
|
Scala
Scala语言入门二(对象)
讲述Scala中的面向对象相关知识点
1419 148
|
算法 网络协议 数据挖掘
阿里云通用算力型U1实例性能、适用场景、与经济型e区别、收费标准参考
在阿里云目前的活动中,通用算力型u1实例是一款价格相对较低且性价比较高的实例规格,通用算力型Universal实例(U实例)能提供均衡的计算、内存和网络资源,支持多种处理器和多种处理器内存配比。该类型实例依托阿里云资源池化技术和智能调度算法进行动态资源管理,为您的应用提供持续的算力保障、稳定性保障、供应及弹性保障,可以满足大多数场景下的应用需求,是一款具有高性价比的企业级实例。本文为大家介绍通用算力型U1实例的性能、适用场景、收费标准,以及和经济型e实例的区别,以供参考。
|
程序员
带你读《电路基础》之一:基本概念
本书内容采用简明易懂的风格,介绍了六步解决问题的方法,并在实践中的问题和实践问题,结合了超过468个新的或改变家庭作业问题。涵盖了全面的线性电路分析的方法,并保留了“设计一个问题”的功能,这有助于学生发展他们的设计技能,有学生发展的问题,以及解决方案。
|
机器学习/深度学习 人工智能 算法
8种人工智能算法求解八皇后问题+原理分析
8种人工智能算法求解八皇后问题+原理分析
2842 1
8种人工智能算法求解八皇后问题+原理分析
|
关系型数据库 测试技术 5G
新型SL密集型光纤连接器的设计与应用
高密度、小型化是光纤连接器的发展趋势与方向,本文针对目前光纤通信设备主流光纤连接器的接口,设计开发了一种新型SL高密度光纤连接器,它与常用的SC和LC光纤连接器相比,连接器布线密度是SC连接器的四倍和LC连接器的两倍。光纤适配器与光纤连接器是密集波分复用(DWDM)、光分路器等光通信设备接口与连接器件,用SL光纤连接器替代目前常用的LC或SC光纤连接器,可成倍的提高光通信设备接口与光纤连接器布线的密度,更好的满足光通信设备向高密度、大容量、集成化方向发展的需要。
新型SL密集型光纤连接器的设计与应用
|
消息中间件 程序员 Go
分布式事务-SAGA与消息
分布式事务分两大类,一类是XA类型的,一类是基于消息通知的事务方案。前些日子写了[分布式事务-2PC与TCC](https://mp.weixin.qq.com/s?__biz=MzUzNzAzMTc3MA==&mid=2247484814&idx=1&sn=e3467cbc3d7ae2149e8ad5c00ede9772&scene=21#wechat_redirect),这次聊一下Saga和基于消息的的事务方案。
|
机器学习/深度学习 算法 数据可视化
SVM(Support Vector Machines)支持向量机算法原理以及应用详解+Python代码实现
SVM(Support Vector Machines)支持向量机算法原理以及应用详解+Python代码实现
1229 0
SVM(Support Vector Machines)支持向量机算法原理以及应用详解+Python代码实现
|
存储 机器学习/深度学习 缓存
一站式极致读吞吐,加速业务数字化转型 - 阿里云对象存储 OSS加速器解析与实践
阿里云对象存储OSS重磅推出OSS加速器功能,提供高性能、高吞吐量的数据访问服务。
9077 0
一站式极致读吞吐,加速业务数字化转型 - 阿里云对象存储 OSS加速器解析与实践