Я хотел бы изучить сценарий, в котором есть несколько MongoDB в режиме реплики, но в специальном случае работает только один. Моя конфигурация похожа на следующую.Как установить действительный репликатор mongo
У меня есть контейнер MongoDB на экземпляре EC2, моя команда
sudo docker run \
--name mongo \
-v /home/core/mongo-files/data:/data/db \
-p 27018:27017 -d mongo:3.2.1 \
--smallfiles \
--replSet "rs0"
то у меня есть 2 приложения развиваемого Nodejs, которые используют эту базу данных. Они соединяются с этой соединительной строкой:
uri: 'mongodb://192.168.0.100:27018/testmongo?replicaSet=rs0'
К сожалению, одно из моих приложений работает хорошо, а другое нет. Сообщение об ошибке при попытке подключения базы данных является
MongoDB connection error: MongoError: no valid replicaset members found
У меня есть статус проверки, выполнив эти команды rs.slaveOk()
, rs.status()
то у меня есть этот
rs0:PRIMARY> rs.status()
{
"set" : "rs0",
"date" : ISODate("2016-09-19T11:50:59.947Z"),
"myState" : 1,
"term" : NumberLong(2),
"heartbeatIntervalMillis" : NumberLong(2000),
"members" : [
{
"_id" : 0,
"name" : "02aaebd39d4b:27017",
"health" : 1,
"state" : 1,
"stateStr" : "PRIMARY",
"uptime" : 1194663,
"optime" : {
"ts" : Timestamp(1474285564, 1),
"t" : NumberLong(2)
},
"optimeDate" : ISODate("2016-09-19T11:46:04Z"),
"electionTime" : Timestamp(1473091196, 1),
"electionDate" : ISODate("2016-09-05T15:59:56Z"),
"configVersion" : 1,
"self" : true
}
],
"ok" : 1
}
Мой вопрос, если эта установка для моего сценария является правильным или нет ? Если это правильно, не могли бы вы помочь мне исправить это. Спасибо заранее
Первое, что я хотел бы проверить, это то, что один элемент работает в списке посещений приложений. Если другие члены, которые в настоящее время опущены/удалены из набора, являются единственными в списке посещений, то ваше приложение не сможет найти набор. –
, так что мои настройки неправильные? должен ли я создать больше контейнеров для манго (скажем, 3 экземпляра), тогда я закрыл и сохранил один? – Bryan
Можете ли вы разместить строки подключения к приложениям? Нам нужно будет убедиться, что они понимают, есть ли проблема с семенниками. –