接:基础篇
新增两个节点,模拟Mongodb集群选举
1.新增Mongodb服务,配置接上篇
2.开启服务
3.登录任意一台服务
4.新增集群节点
rs.add( { host: "127.0.0.1:27020", priority: 0, votes: 0 } )
rs.add( { host: "127.0.0.1:27021", priority: 0, votes: 0 } )
5.查看状态
rs.status()
{
"set" : "rs0",
"date" : ISODate("2021-03-10T01:40:33.260Z"),
"myState" : 1,
"term" : NumberLong(14),
"syncingTo" : "",
"syncSourceHost" : "",
"syncSourceId" : -1,
"heartbeatIntervalMillis" : NumberLong(2000),
"optimes" : {
"lastCommittedOpTime" : {
"ts" : Timestamp(1615340428, 1),
"t" : NumberLong(14)
},
"readConcernMajorityOpTime" : {
"ts" : Timestamp(1615340428, 1),
"t" : NumberLong(14)
},
"appliedOpTime" : {
"ts" : Timestamp(1615340428, 1),
"t" : NumberLong(14)
},
"durableOpTime" : {
"ts" : Timestamp(1615340428, 1),
"t" : NumberLong(14)
}
},
"members" : [
{
"_id" : 0,
"name" : "127.0.0.1:27017",
"health" : 1,
"state" : 1,
"stateStr" : "PRIMARY",
"uptime" : 2767,
"optime" : {
"ts" : Timestamp(1615340428, 1),
"t" : NumberLong(14)
},
"optimeDate" : ISODate("2021-03-10T01:40:28Z"),
"syncingTo" : "",
"syncSourceHost" : "",
"syncSourceId" : -1,
"infoMessage" : "",
"electionTime" : Timestamp(1615339036, 1),
"electionDate" : ISODate("2021-03-10T01:17:16Z"),
"configVersion" : 4,
"self" : true,
"lastHeartbeatMessage" : ""
},
{
"_id" : 1,
"name" : "127.0.0.1:27018",
"health" : 1,
"state" : 2,
"stateStr" : "SECONDARY",
"uptime" : 1263,
"optime" : {
"ts" : Timestamp(1615340428, 1),
"t" : NumberLong(14)
},
"optimeDurable" : {
"ts" : Timestamp(1615340428, 1),
"t" : NumberLong(14)
},
"optimeDate" : ISODate("2021-03-10T01:40:28Z"),
"optimeDurableDate" : ISODate("2021-03-10T01:40:28Z"),
"lastHeartbeat" : ISODate("2021-03-10T01:40:31.582Z"),
"lastHeartbeatRecv" : ISODate("2021-03-10T01:40:32.375Z"),
"pingMs" : NumberLong(0),
"lastHeartbeatMessage" : "",
"syncingTo" : "127.0.0.1:27017",
"syncSourceHost" : "127.0.0.1:27017",
"syncSourceId" : 0,
"infoMessage" : "",
"configVersion" : 4
},
{
"_id" : 2,
"name" : "127.0.0.1:27019",
"health" : 1,
"state" : 7,
"stateStr" : "ARBITER",
"uptime" : 2735,
"lastHeartbeat" : ISODate("2021-03-10T01:40:32.159Z"),
"lastHeartbeatRecv" : ISODate("2021-03-10T01:40:32.166Z"),
"pingMs" : NumberLong(0),
"lastHeartbeatMessage" : "",
"syncingTo" : "",
"syncSourceHost" : "",
"syncSourceId" : -1,
"infoMessage" : "",
"configVersion" : 4
},
{
"_id" : 3,
"name" : "127.0.0.1:27020",
"health" : 1,
"state" : 2,
"stateStr" : "SECONDARY",
"uptime" : 1768,
"optime" : {
"ts" : Timestamp(1615340428, 1),
"t" : NumberLong(14)
},
"optimeDurable" : {
"ts" : Timestamp(1615340428, 1),
"t" : NumberLong(14)
},
"optimeDate" : ISODate("2021-03-10T01:40:28Z"),
"optimeDurableDate" : ISODate("2021-03-10T01:40:28Z"),
"lastHeartbeat" : ISODate("2021-03-10T01:40:32.213Z"),
"lastHeartbeatRecv" : ISODate("2021-03-10T01:40:33.253Z"),
"pingMs" : NumberLong(0),
"lastHeartbeatMessage" : "",
"syncingTo" : "127.0.0.1:27017",
"syncSourceHost" : "127.0.0.1:27017",
"syncSourceId" : 0,
"infoMessage" : "",
"configVersion" : 4
},
{
"_id" : 4,
"name" : "127.0.0.1:27021",
"health" : 1,
"state" : 2,
"stateStr" : "SECONDARY",
"uptime" : 1760,
"optime" : {
"ts" : Timestamp(1615340428, 1),
"t" : NumberLong(14)
},
"optimeDurable" : {
"ts" : Timestamp(1615340428, 1),
"t" : NumberLong(14)
},
"optimeDate" : ISODate("2021-03-10T01:40:28Z"),
"optimeDurableDate" : ISODate("2021-03-10T01:40:28Z"),
"lastHeartbeat" : ISODate("2021-03-10T01:40:32.205Z"),
"lastHeartbeatRecv" : ISODate("2021-03-10T01:40:33.202Z"),
"pingMs" : NumberLong(0),
"lastHeartbeatMessage" : "",
"syncingTo" : "127.0.0.1:27017",
"syncSourceHost" : "127.0.0.1:27017",
"syncSourceId" : 0,
"infoMessage" : "",
"configVersion" : 4
}
],
"ok" : 1,
"operationTime" : Timestamp(1615340428, 1),
"$clusterTime" : {
"clusterTime" : Timestamp(1615340428, 1),
"signature" : {
"hash" : BinData(0,"AAAAAAAAAAAAAAAAAAAAAAAAAAA="),
"keyId" : NumberLong(0)
}
}
}
6.测试集群
执行上篇测试方法,查看数据库数据,发现成功保存,集群配置成功
7.测试集群选举
通过rs.status()命令,查看状态后,可以看到27017为当前主服务,停掉27017主服务,运行测试方法,查看集群是否正常工作即可,也可再次通过rs.status()命令查看集群状态
总结:通过配置Mongodb集群,测试集群选举,下次调试Mongodb集群读写分离的详细情况。