MongoDB分布式集群
Replication 复制、Replica Set 复制集/副本集 概念
一、 副本集的相关概念
1.概念
“ A replica set is a group of mongod instances that maintain the same data set. ”
- 一组MongoDB服务器(多个mongod实例)(有不同的IP或端口)(具有相同的副本集名称)
- 具有相同副本集,相同的数据 (为了保证数据的相同,需要各mongod实例间保持数据的复制)
2.副本集的组成
- Primary Node 主节点 (一个) 默认的可写节点
- Secondary Nodes 从节点 (多个)

3.复制原理
- 复制的初始化:当一个复制集被建立之初,我们需要首先初始化一个Primary主节点。
- Replication(复制)发生在Primary(主节点)和Secondaries(从节点)之间。由主节点将操作记录(oplog)同步到从节点上,从节点根据oplog进行数据更新以获得与主节点相同的数据。【读比较多,写较少,主节点可读可写,从节点只可读】
- 分担负载均衡,至少三台机器,选举需要超半数,一般是三台机器。一个T->3个T
4. 选举制度
- 当主节点不可用时,一个复制集中的其他从节点将选举出一个新的主节点
- 选举采用分级投票制:在最高优先级的节点中得票最高(超过总成员半数)的节点成为新的主节点
- 影响选举的主要副本集配置:
- members.priority
- members.votes
- 影响选举的主要副本集配置:

二、从零开始搭建PSS副本集

一个主节点,两个从节点;在一台机器上模拟三台机器,一个目录代表一个机器,创建三个目录。首先做好规划表:

- 如果不加副本集名称,那么这三台服务器之间没有关联。为了让三台服务器之间建立联系,引入相同的副本集(rs0)
- 根据规划表,创建三个配置文件xxx.ini,都需要有副本集
//server1.ini
bind_ip=127.0.0.1
port=27001
dbpath=.\server1
logpath=.\server1\mongod.log
logappend=true
replSet = rs0
//server2.ini
bind_ip=127.0.0.1
port=27002
dbpath=.\server2
logpath=.\server2\mongod.log
logappend=true
replSet = rs0
//server3.ini
bind_ip=127.0.0.1
port=27003
dbpath=.\server3
logpath=.\server3\mongod.log
logappend=true
replSet = rs0

- 写一个启动脚本文件
//创建目录,一个目录相当于一个服务器
mkdir .\server1
mkdir .\server2
mkdir .\server3
//启动3个服务器
start "MongoDB Server1" mongod --config=.\server1.ini
start "MongoDB Server2"</

最低0.47元/天 解锁文章

被折叠的 条评论
为什么被折叠?



