У нас есть 3 сервера mongo, настроенные как реплики, один из которых никогда не может стать основным (резервным). Допустим, mongo1 является первичным, а mongo[2..3] — вторичным. Случайным образом mongo1 не будет доступен для mongo2 и mongo3, в результате чего mongo2 будет выбран в качестве основного. Затем Mongo1 видит это и становится основным. Затем mongo2 и 3 снова видят mongo1 через несколько секунд или около того, и он переизбирается.
Есть ли причина, по которой он так быстро переизбрал mongo1? Оба mongo 1 и 2 имеют одинаковый приоритет.
Проблема в том, что он отключает маршрутизаторы mongo от каждого из наших веб-серверов, что требует времени, чтобы заново обнаружить, какой из них является основным, и подключиться к нему.
Кроме того, должны ли маршрутизаторы mongodb находиться на сервере приложений или отдельном сервере? В руководстве по mongodb предлагается разместить его на каждом сервере приложений, но каковы преимущества этого способа? Каковы были бы преимущества и проблемы с наличием серверов маршрутизатора между серверами приложений и серверами mongo?
Я должен упомянуть, что это в AWS (ec2), если это имеет значение.
редактировать:
запуск mongo 2.4.6 как набора реплик. Извините за это, я забыл упомянуть эту часть. У них довольно высокая нагрузка. Все экземпляры mongo находятся в одном регионе и в одной зоне доступности в EC2.
mongos
процессов). Не могли бы вы уточнить, что вы имеете в виду под маршрутизаторами? Можете ли вы также предоставить более подробную информацию о развертывании вашего набора реплик: Распределены ли ваши серверы MongoDB географически? Что это за экземпляры AWS? Кроме того, какая версия MongoDB? - person Stennie   schedule 25.07.2014