Репликация
Данные копируются на несколько узлов и поддерживаются в синхронизации.
Главная цель — продолжить работу при сбое и разгрузить чтение.
Репликация в MongoDB — способ повысить надёжность и отказоустойчивость базы данных.
Простая идея: есть несколько копий данных, которые автоматически поддерживаются в синхронизации.
Цели репликации: отказоустойчивость и повышение производительности чтения.
Replica set — группа экземпляров mongod с одним набором данных.
Primary принимает записи, secondary хранят копии и могут помогать с чтением.
Синхронная репликация даёт более актуальные копии, но добавляет задержку.
Асинхронная репликация быстрее для записи, но secondary могут отставать.
Arbiter не хранит данные и участвует в выборах primary при сбое.
Данные копируются на несколько узлов и поддерживаются в синхронизации.
Главная цель — продолжить работу при сбое и разгрузить чтение.
Primary принимает запись, secondary копируют данные.
Такая роль важна для понимания записи, чтения и failover.
Плюсы: актуальные копии, высокая доступность.
Минусы: задержка записи, плохо подходит для больших расстояний.
Это следует из источника: подтверждения реплик увеличивают время ответа.
Плюс: запись быстрее.
Минусы: задержка репликации и риск потери части данных при сбое primary.
Primary не ждёт все secondary, поэтому выигрывает скорость, но появляется лаг.
Арбитр голосует на выборах, не хранит данные и не может стать primary.
Его используют, когда нужен дополнительный голос без полной копии данных.
Если primary недоступен, replica set проводит выборы нового primary.
Автоматическое переключение снижает простой, но приложение должно корректно переживать переподключение.