Я установил набор реплик MongoDB, и это структура:
- Один первичный узел.
- Один вторичный узел.
- Один узел арбитра.
Я включил вывод rs.status () в конец этого поста.
Проблема, с которой я сталкиваюсь сейчас, заключается в том, что когда мое приложение подключено с использованием MongoDBстрока соединения: mongodb://192.168.17.52:27017,192.168.17.223:27017,192.168.17.49:27017/?replicaSet=rs-nnt&readPreference=primary
будет работать, если первичный узел указан первым в списке через запятую и в этом случае 192.168.17.52:27017.Если бы мне пришлось остановить службу первичной БД, я бы ожидал, что приложение будет использовать вторичный узел, но по какой-то причине он не будет работать, и после некоторого устранения неполадок я пришел к выводу, что он будет принимать только первый хост, указанный вСтрока подключения.
Пожалуйста, дайте мне знать, если вам нужна дополнительная информация, оцените любую помощь!
rs.status () :
rs-nnt:PRIMARY> rs.status()
{
"set" : "rs-nnt",
"date" : ISODate("2018-12-04T14:09:38.835Z"),
"myState" : 1,
"term" : NumberLong(8),
"heartbeatIntervalMillis" : NumberLong(2000),
"optimes" : {
"lastCommittedOpTime" : {
"ts" : Timestamp(1543932576, 1),
"t" : NumberLong(8)
},
"readConcernMajorityOpTime" : {
"ts" : Timestamp(1543932576, 1),
"t" : NumberLong(8)
},
"appliedOpTime" : {
"ts" : Timestamp(1543932576, 1),
"t" : NumberLong(8)
},
"durableOpTime" : {
"ts" : Timestamp(1543932576, 1),
"t" : NumberLong(8)
}
},
"members" : [
{
"_id" : 0,
"name" : "192.168.17.52:27017",
"health" : 1,
"state" : 1,
"stateStr" : "PRIMARY",
"uptime" : 10565,
"optime" : {
"ts" : Timestamp(1543932576, 1),
"t" : NumberLong(8)
},
"optimeDate" : ISODate("2018-12-04T14:09:36Z"),
"electionTime" : Timestamp(1543923115, 1),
"electionDate" : ISODate("2018-12-04T11:31:55Z"),
"configVersion" : 3,
"self" : true
},
{
"_id" : 1,
"name" : "192.168.17.223:27017",
"health" : 1,
"state" : 2,
"stateStr" : "SECONDARY",
"uptime" : 8427,
"optime" : {
"ts" : Timestamp(1543932576, 1),
"t" : NumberLong(8)
},
"optimeDurable" : {
"ts" : Timestamp(1543932576, 1),
"t" : NumberLong(8)
},
"optimeDate" : ISODate("2018-12-04T14:09:36Z"),
"optimeDurableDate" : ISODate("2018-12-04T14:09:36Z"),
"lastHeartbeat" : ISODate("2018-12-04T14:09:38.167Z"),
"lastHeartbeatRecv" : ISODate("2018-12-04T14:09:38.736Z"),
"pingMs" : NumberLong(0),
"syncingTo" : "192.168.17.52:27017",
"configVersion" : 3
},
{
"_id" : 2,
"name" : "192.168.17.49:27017",
"health" : 1,
"state" : 7,
"stateStr" : "ARBITER",
"uptime" : 10518,
"lastHeartbeat" : ISODate("2018-12-04T14:09:38.167Z"),
"lastHeartbeatRecv" : ISODate("2018-12-04T14:09:36.770Z"),
"pingMs" : NumberLong(0),
"configVersion" : 3
}
],
"ok" : 1,
"operationTime" : Timestamp(1543932576, 1),
"$clusterTime" : {
"clusterTime" : Timestamp(1543932576, 1),
"signature" : {
"hash" : BinData(0,"Ydlo0SyUlFlnZUfimAmGvrowuRs="),
"keyId" : NumberLong("6630712219715764225")
}
}
}
Дополнительная информация : Брандмауэр отключен на всех хостах.Имя хоста и IP-адрес были добавлены в файл hosts на всех серверах.