2014-01-07 2 views
1

До сих пор от Mongo руководства, я узнал, что:После восстановления после основного сбоя, драйвер Mongo Java возобновляет нормальные операции записи?

(Монго Server) ... множество реплик будет пытаться выбрать другой элемент, чтобы стать новым первичным. Первым становится первичное среднее, которое получает большинство голосов.

(Работа с клиентом) ... Используйте primaryPreferred, если вы хотите, чтобы приложение читалось из основного при нормальных обстоятельствах, но чтобы позволить устаревшие чтения из вторичных в чрезвычайной ситуации.

(Драйвер) Драйвер Java от MongoDB обеспечивает восстановление после сбоев в реплицированных настройках с настраиваемыми уровнями прозрачности для пользователя. По умолчанию объект соединения MongoClient будет игнорировать ошибки вторичных, и чтение будет только бросать MongoException, когда основной узел недоступен.

  • Когда новый первичный избирается сервером Монго, делает драйвер клиента стало известно о новой первичной?
  • После того как первичный отказ и новый первичный выбор стали избранными, водитель клиента возобновляет обычные операции записи?
+0

Вы пробовали? – Sammaye

+0

@ Саммаи не уверен, не так ли? –

+0

Да, потребовалось около 5 секунд, чтобы проверить, в основном, да, драйвер должен обеспечить автоматический переход на новое первичное соединение, но на самом деле это то, что можно было легко протестировать – Sammaye

ответ

2

Если вы дадите MongoClient список членов replSet, драйвер попытается найти новый основной файл после завершения процесса голосования.

+0

Я читал смешанные мнения по этой теме, откуда у вас возникло впечатление? –

+1

Отчасти потому, что я работаю для mongodb на java-драйвере. ;) – evanchooly

+0

Спасибо. Что произойдет, если новый избранный первичный элемент не был установлен в репликации (поскольку позднее было установлено rs.add() позже, когда установлено соединение, может ли драйвер по-прежнему обнаруживать новый первичный? –

Смежные вопросы