Ошибка подключения монго при попытке создания реплицированного сегментированного кластера

Я пытаюсь создать реплицированный кластер в 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 для доступа к базе данных?

0 ответов

Другие вопросы по тегам