MongoDB 3.4 高可用集群搭建(二)replica set 副本集

NoSQL的产生就是为了解决大数据量、高扩展性、高性能、灵活数据模型、高可用性。但是光通过主从模式的架构远远达不到上面几点,由此MongoDB设计了副本集和分片的功能。

mongodb官方已经不建议使用主从模式了,替代方案是采用副本集的模式:

那什么是副本集呢?

由图可以看到客户端连接到整个副本集,不关心具体哪一台机器是否挂掉。主服务器负责整个副本集的读写,副本集定期同步数据备份,一但主节点挂掉,副本节点就会选举一个新的主服务器,这一切对于应用服务器不需要关心。我们看一下主服务器挂掉后的架构:

官方推荐的副本集机器数量为至少3个,如果已经有挂掉一个节点,再挂掉一个,剩下的最后一个不会自动成为新的主节点。

1、准备3个虚拟机:192.168.4.198,192.168.4.199,192.168.4.200,都下载并解压好Mongo包。并分别在三个虚拟机上创建数据库存放文件夹。 /home/weixla/dada/db

2、分别以副本集模式启动三个虚拟器的MongoDB服务,

/home/weixla/mongodb-3.4.0/bin/mongod -dbpath /home/weixla/data/ --replSet TestReplicaSet

可以看到控制台上显示副本集还没有配置初始化信息。

3、初始化副本集

登录任意一台客户端(这里登录198那台的客户端),切换到admin数据库

定义副本集配置变量,其中_id为上面定义的副本集名称

初始化副本集rs.initiate(config)

服务端打印大量日志,目的就是通过选举策略选出主节点和副节点

在客户端查看副本集状态rs.status()

4、测试数据复制

在主节点插入一条数据

连接副节点进行查询

mongodb默认是从主节点读写数据的,副本节点上不允许读(更不能写入),需要设置副本节点可以读

这里测试结果达到预期一样,在副本节点数据进行了同步。

5、测试故障转移

首先停掉主节点,这里会打印大量日志,大概是重新选举相关操作。

查看副本集节点

再查看其它两个节点,这里201(就是199,IP被占用了)保持为副节点,200却成为了主节点。

目前看起来支持完美的故障转移了

转:http://blog.csdn.net/vellin/article/details/53897827、http://blog.csdn.net/vellin/article/details/53994014

最后编辑于
©著作权归作者所有,转载或内容合作请联系作者
平台声明:文章内容(如有图片或视频亦包括在内)由作者上传并发布,文章内容仅代表作者本人观点,简书系信息发布平台,仅提供信息存储服务。

推荐阅读更多精彩内容

  • mongodb副本集即客户端连接到整个副本集,不关心具体哪一台机器是否挂掉。主服务器负责整个副本集的读写,副本集定...
    yaya520阅读 7,169评论 0 4
  • Replica Set功能 1, Replica Set是指一组服务器的集群,其中有一个主服务器,用于处理用户的请...
    持续进步者阅读 3,911评论 2 10
  • 刚接触MongoDB,就要用到它的集群,只能硬着头皮短时间去看文档和尝试自行搭建。迁移历史数据更是让人恼火,近10...
    davidpp阅读 51,781评论 9 78
  • 数据副本 MongoDB中的一组副本是一群mongod进程,这些进程维护同样的数据集。副本集提供了冗余和高可用性,...
    大蟒传奇阅读 2,702评论 4 16
  • 晶莹的露珠 路过夏日的晨曦 来不及转身 就消失的无影无踪 犹如 那场关于青春的碎片 那年的鲜衣怒马 那年的溪桥柳细...
    止语静默阅读 381评论 29 21