Назад | Перейти на главную страницу

Серверы mongoDB недоступны, когда главный сервер не работает

Я получил следующие ошибки, когда главная реплика не работает

ConnectionPool::PoolShuttingDownError (ConnectionPool::PoolShuttingDownError):
Moped::Errors::ConnectionFailure (Could not connect to a primary node for replica set #<Moped::Cluster:70117691586500 @seeds=[<Moped::Node resolved_address="0.0.0.0:27017">]>

Имею 3 реплики mongoDB.

Кажется, что первичная реплика 172.19.16.109:27017

Я не понимаю, почему я выключил машину 172.19.16.109,

А остальные 2 реплики недоступны для загрузки данных из своей базы данных.

Разве это не имеет смысла для реплик? Один раз, если мастер выключен, остальные также будут недоступны.

Я ожидаю, что даже если одна из реплик выйдет из строя, другие должны работать правильно.

Мои конфигурации указаны ниже.

vvtk_dqa:PRIMARY> rs.conf()
{
    "_id" : "vvtk_dqa",
    "version" : 4,
    "members" : [
        {
            "_id" : 1,
            "host" : "172.19.16.109:27017"
        },
        {
            "_id" : 2,
            "host" : "172.19.16.104:27017"
        },
        {
            "_id" : 3,
            "host" : "192.168.14.7:27017"
        }
    ]
}

mongodb.conf

# Where to store the data.
dbpath=/var/lib/mongodb

#where to log
logpath=/var/log/mongodb/mongodb.log

logappend=true

bind_ip = 0.0.0.0
#port = 27017

# Enable journaling, http://www.mongodb.org/display/DOCS/Journaling
journal=true

replSet=vvtk_dqa

isMaster

vvtk_dqa:PRIMARY> rs.isMaster()
{
    "setName" : "vvtk_dqa",
    "setVersion" : 4,
    "ismaster" : true,
    "secondary" : false,
    "hosts" : [
        "172.19.16.109:27017",
        "192.168.14.7:27017",
        "172.19.16.104:27017"
    ],
    "primary" : "172.19.16.109:27017",
    "me" : "172.19.16.109:27017",
    "maxBsonObjectSize" : 16777216,
    "maxMessageSizeBytes" : 48000000,
    "maxWriteBatchSize" : 1000,
    "localTime" : ISODate("2015-02-11T02:05:12.021Z"),
    "maxWireVersion" : 2,
    "minWireVersion" : 0,
    "ok" : 1
}

добавление

gem 'moped', '2.0.4', github: 'wandenberg/moped', branch: 'operation_timeout'

to Gemfile мне помогло. больше информации: https://github.com/mongoid/moped/issues/348