Ошибка подключения монго при попытке создания реплицированного сегментированного кластера
Я пытаюсь создать реплицированный кластер в mongodb. Изначально я создал два осколка, и в каждом из них есть набор реплик с тремя участниками. И все осколки и репликасы работают на одной машине. Я последовал за
http://docs.mongodb.org/manual/tutorial/convert-replica-set-to-replicated-shard-cluster/
развернуть эту структуру, и это сработало отлично.
Но так как я запускаю свой mongodb в экземпляре AWS для бизнес-приложения и подключаю свой сервер node.js к базе данных, я хочу сбалансировать нагрузку базы данных в нескольких экземплярах aws, чтобы база данных работала нормально даже в огромных масштабах. нагрузка на трафик и даже если один экземпляр станет нездоровым или недоступным, я смогу получить доступ к базе данных из репликационного набора, запущенного в других экземплярах.
В зависимости от предложений разных пользователей в моем предыдущем вопросе
http://stackru.com/questions/24671205/mongodb-load-balancing-in-multiple-aws-instances
Я пытаюсь разделить базу данных на осколки, и у каждого осколка будет набор реплики с 3 или более членами, работающими в отдельных экземплярах aws. Чтобы создать эту структуру, я сначала попытался развернуть ее локально.
У меня есть два набора реплик первого и второго набора
Первый набор состоит из трех членов: 192.168.1.10:27018(Primary), 192.168.1.11.27018(Secondary) и 192.168.1.9:27018(arbiter)
И второй набор состоит из трех членов: 192.168.1.6:27019(Primary), 192.168.1.9:27019(Secondary) и 192.169.1.11:27019(arbiter)
Для создания первой копии я написал
mongod --dbpath /replica-data --port 27018 --replSet firstset --oplogSize 10
в 192.168.1.10, 192.168.1.11 и 192.168.1.9
Затем, чтобы начать набор реплик, который я написал
mongo --port 27018
в 192.168.1.10, а затем,
use admin
db.runCommand({
"replSetInitiate": {
"_id": "firstset",
"members": [{
"_id": 1,
"host": "192.168.1.10:27018",
"priority": 10
}, {
"_id": 2,
"host": "192.168.1.11:27018",
"priority": 2
}, {
"_id": 3,
"host": "192.168.1.9:27018",
"priority": 1,
"arbiterOnly": true
}]
}
});
Я создал копию второго набора аналогичным образом, и это сработало.
Затем я попытался создать три configsvrs на трех отдельных машинах, так что даже если одна машина выключится, будет запущена другая configsvrs. Configsvs будет работать в 192.168.1.10:27020, 192.168.1.11:27020 и 192.168.1.6:27020
Итак, я написал
mongod --configsvr --dbpath /shard-data -port 27020
в 192.168.1.10, 192.168.1.11 и 192.168.1.6.
Затем я попытался запустить mongos в 192.168.1.10 в порту 27017 с тремя запущенными configdb. Итак, я написал
mongos --configdb 192.168.1.10:27020,192.168.1.11:27020,192.168.1.6:27020 --port 27017 --chunkSize 1
Затем, добавив осколок в монго и монго в порте 27017, я написал:
mongo --port 27017
Но это показывает
errno:111 conncetion refused.
Но раньше он отлично работал, когда я тестировал его на одной машине.
Пожалуйста, помогите мне, почему я получаю эту ошибку и как ее решить.
У меня также есть еще одна путаница. Я запускаю mongos в 192.168.1.10, а затем подключу свой сервер node.js к этим mongos, но если эта машина выключится, у меня будут проблемы. Так нужно ли мне запускать mongos на других машинах, чтобы хотя бы одна mongos работала для маршрутизации соединений с базой данных в любое время? Если мне нужно создать несколько монго, работающих на разных машинах одновременно, то как мне подключить любой монг с сервера node.js для доступа к базе данных?