mongodb的架构 副本集搭建

本文涉及的产品
云数据库 MongoDB,独享型 2核8GB
推荐场景:
构建全方位客户视图
简介: 文章来源本人博客 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
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为主了
相关实践学习
MongoDB数据库入门
MongoDB数据库入门实验。
快速掌握 MongoDB 数据库
本课程主要讲解MongoDB数据库的基本知识,包括MongoDB数据库的安装、配置、服务的启动、数据的CRUD操作函数使用、MongoDB索引的使用(唯一索引、地理索引、过期索引、全文索引等)、MapReduce操作实现、用户管理、Java对MongoDB的操作支持(基于2.x驱动与3.x驱动的完全讲解)。 通过学习此课程,读者将具备MongoDB数据库的开发能力,并且能够使用MongoDB进行项目开发。   相关的阿里云产品:云数据库 MongoDB版 云数据库MongoDB版支持ReplicaSet和Sharding两种部署架构,具备安全审计,时间点备份等多项企业能力。在互联网、物联网、游戏、金融等领域被广泛采用。 云数据库MongoDB版(ApsaraDB for MongoDB)完全兼容MongoDB协议,基于飞天分布式系统和高可靠存储引擎,提供多节点高可用架构、弹性扩容、容灾、备份回滚、性能优化等解决方案。 产品详情: https://www.aliyun.com/product/mongodb
相关文章
|
2月前
|
NoSQL 容灾 MongoDB
MongoDB主备副本集方案:两台服务器使用非对称部署的方式实现高可用与容灾备份
在资源受限的情况下,为了实现MongoDB的高可用性,本文探讨了两种在两台服务器上部署MongoDB的方案。方案一是通过主备身份轮换,即一台服务器作为主节点,另一台同时部署备节点和仲裁节点;方案二是利用`priority`设置实现自动主备切换。两者相比,方案二自动化程度更高,适合追求快速故障恢复的场景,而方案一则提供了更多的手动控制选项。文章最后对比了这两种方案与标准三节点副本集的优缺点,指出三节点方案在高可用性和数据一致性方面表现更佳。
180 5
|
3月前
|
存储 NoSQL MongoDB
MongoDB 复制(副本集)
10月更文挑战第17天
59 2
MongoDB 复制(副本集)
|
2月前
|
存储 NoSQL MongoDB
【赵渝强老师】MongoDB复制集的体系架构
MongoDB的复制集是一种集群技术,由一个Primary节点和多个Secondary节点组成,实现数据的高可用性。Primary节点处理写入请求,Secondary节点同步数据。当Primary节点故障时,Secondary节点可通过选举成为新的Primary节点。视频讲解和示意图详见正文。
|
4月前
|
存储 NoSQL Shell
MongoDB复制(副本集)总结
这篇文章是关于MongoDB副本集的总结,包括复制原理、设置副本集、案例分析等内容。
58 1
|
3月前
|
NoSQL MongoDB Docker
求助,有没有大神可以找到arm64架构下mongodb的3.6.8版本的docker镜像?
在Docker Hub受限的情况下,寻求适用于ARM架构的docker镜像资源或拉取链接,以便在x86架构上获取;内网中的机器为ARM架构,因此优先请求适合ARM的Docker镜像或Dockerfile,非常感激您的帮助。
|
5月前
|
NoSQL MongoDB Windows
MongoDB 读写分离——Windows MongoDB 副本集配置
MongoDB 读写分离——Windows MongoDB 副本集配置
116 0
|
7月前
|
存储 负载均衡 NoSQL
MongoDB架构设计
【6月更文挑战第6天】MongoDB架构设计
76 2
|
7月前
|
存储 NoSQL MongoDB
MongoDB技术架构详解
MongoDB技术架构详解
|
7月前
|
存储 监控 NoSQL
MongoDB 副本集:构建可靠的数据备份与高可用性系统
MongoDB 副本集:构建可靠的数据备份与高可用性系统
146 0
|
1月前
|
弹性计算 API 持续交付
后端服务架构的微服务化转型
本文旨在探讨后端服务从单体架构向微服务架构转型的过程,分析微服务架构的优势和面临的挑战。文章首先介绍单体架构的局限性,然后详细阐述微服务架构的核心概念及其在现代软件开发中的应用。通过对比两种架构,指出微服务化转型的必要性和实施策略。最后,讨论了微服务架构实施过程中可能遇到的问题及解决方案。

热门文章

最新文章