MongoDB实践五(复制集)

  • 高可用性
  • 数据安全
  • 分流/分工
 
复制集节点
  • 主节点负责处理所有的写入请求 。
  • 主节点(默认)和副节点都可以处理读取请求。
  • 父节点从主节点(或者符合条件的副 节点)处复制数据。
  • 每个节点都会向其他节点发送心跳请求。
  • 每隔两秒发送一次,超过10秒则请求超时(默认)。
  • 复制集中最多可以有50个节点。
 
复制集选举
  • 候选节点发起选举,每个节点投票给比自己更同步的节点。
  • 得到超过半数选票的候选节点会当选主节点。
  • 复制集中最多可以有7个投票节点。
 
触发选举的事件
  • 主节点与父节点之间的心跳请求超时
  • 复制集初始化
  • 新节点加入复制集
 
投票机
  • 没有数据
  • 可以投票
  • 不能成为主节点
 
 
docker run --net mynetwork --name mongo1 -v /mymongo/data1:/data/db -p 27017:27017 -d mongo:4 --replSet myset --port 27017
docker run --net mynetwork --name mongo2 -v /mymongo/data2:/data/db -p 27018:27018 -d mongo:4 --replSet myset --port 27018
docker run --net mynetwork --name mongo3 -v /mymongo/data3:/data/db -p 27019:27019 -d mongo:4 --replSet myset --port 27019
 
 
> rs.initiate(
... {
... _id:"myset",
... members:[
... {_id:0,host:"mongo1:27017"},
... {_id:1,host:"mongo2:27018"},
... {_id:2,host:"mongo3:27019"}
... ]
... }
... )
 

posted @ 2021-03-03 14:11  year12  阅读(37)  评论(0编辑  收藏  举报