java mongo 副本集_mongodb副本集介绍、mongodb副本集搭建、 mongodb副本集测试

本文介绍了MongoDB副本集的原理,包括主从切换、仲裁节点的作用,以及MongoDB副本集的搭建过程,包括配置文件修改和初始化副本集的步骤。通过示例展示了在不同服务器上设置副本集并验证其状态。
摘要由CSDN通过智能技术生成

mongodb副本集介绍

MongoDB早期版本使用master-slave,一主一从和MySQL主从基本是一致的,但salve在此架构中为只读,当主库宕机后,从库不能自动切换为主.

目前已经淘汰master-salve模式,改为副本集,副本集架构也是为了实现MongoDB的高可用,这种模式下有一个主(primary),和多个从(secondary)只读,支持他们设置权重,当主宕机后,权重最高的从切换为主.

在此架构中还可以建立一个仲裁(arbiter)的角色,它只负责裁决,而不存储数据.

在此架构中读写数据都是在主上,要想实现负载均衡的目的需要手动指定读库的目标server.

MongoDB副本集架构图

原理很简单一个primary,secondary至少是一个,也可以是多个secondary,除了多个secondary之外,还可以加一个Arbiter,Arbiter叫做仲裁,当Primary宕机后,Arbiter可以很准确的告知Primary宕掉了,但可能Primary认为自己没有宕掉,这样的话就会出现脑裂,为了防止脑裂就增加了Arbiter这个角色,尤其是数据库坚决不能出现脑裂的状态,脑裂会导致数据会紊乱,数据一旦紊乱恢复就非常麻烦.

68782df3944c589cc81f6e4fc850f0cf.png

变迁图

说明:Primary宕机后,其中secondary就成为一个新的Primary,另外一个secondary依然是secondary的角色. 对于MySQL主从来讲,即使做一主多从,万一master宕机后,可以让从成为新的主,但这过程是需要手动的更改的. 但是在MongoDB副本集架构当中呢,它完全都是自动的,rimary宕机后,其中secondary就成为一个新的Primary,另外一个secondary可以自动识别新的primary.

e681a44cbbf5db6a949dbd95a8c852c1.png

mongodb副本集搭建

准备三台机器: 192.168.193.130 (primary)

192.168.193.131 (secondary)

192.168.193.132 (secondary)

三台机器都需要安装MongoDB,primary已安装过,两台secondary需要安装,因步骤一样,在此不做演示.

编辑三台机器的配置文件

[root@aminglinux-130 ~]# vim /etc/mongod.conf

# network interfaces

net:

port: 27017

bindIp: 127.0.0.1,192.168.193.130 # Listen to local interface only, comment to listen on all interfaces.

"/etc/mongod.conf" 44L, 784C

说明:做副本集bindIp 要监听本机IP和内网IP

#replication: //把#去掉,并增两行

replication:

oplogSizeMB: 20 //前面两个空格

replSetName;annalinux //定义副本集的名字 前面两个空格

重启MongoDB服务:

[root@aminglinux-130 ~]# systemctl restart mongod

启动从主机

[root@aminglinux-131 ~]# vim /etc/mongod.conf

net:

port: 270

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值