Это довольно обобщенный вопрос;Можете ли вы указать, о каких хранилищах данных вы конкретно говорите?
Я работал с MongoDB, и он справляется с этим очень изящно;каждый член «набора реплик» (в основном кластер «ведущий-ведомый») имеет право стать ведущим.При подключении к набору реплик набор сообщит подключающемуся клиенту о каждом члене в наборе.Если мастер в наборе переходит в автономный режим, ведомые автоматически выбирают нового мастера, а клиент (так как у него есть список всех узлов в наборе) будет пробовать новые узлы, пока не соединится;узел, к которому он подключается, сообщит клиенту о новом мастере, а клиент переключит свое соединение.Это позволяет полностью прозрачно переключать основной / подчиненный отказ без каких-либо изменений в вашем приложении.
Это, очевидно, хорошо для одиночных соединений, но как насчет перезапусков?Драйвер MongoDB также обрабатывает это;он может принять список узлов, к которым попытаться подключиться, и будет пробовать их последовательно, пока не найдет один для подключения.Как только он подключится, он спросит узел, кто является его ведущим, и переадресует соединение туда.
Чистый результат состоит в том, что, если у вас установлен набор реплик, вы можете просто не беспокоиться о том, что любой отдельный узел взорветсяпереведет вас в автономный режим.