← К оглавлению занятия

✅ Решения

📁 Блок: MongoDB / репликация ⏱️ Время изучения: ~90 мин 🎯 Сложность: Продвинутая

⚡ Кратко: суть занятия

Репликация в MongoDB — способ повысить надёжность и отказоустойчивость базы данных.

Простая идея: есть несколько копий данных, которые автоматически поддерживаются в синхронизации.

Цели репликации: отказоустойчивость и повышение производительности чтения.

Replica set — группа экземпляров mongod с одним набором данных.

Primary принимает записи, secondary хранят копии и могут помогать с чтением.

Синхронная репликация даёт более актуальные копии, но добавляет задержку.

Асинхронная репликация быстрее для записи, но secondary могут отставать.

Arbiter не хранит данные и участвует в выборах primary при сбое.

Решения с пояснениями

Репликация

Данные копируются на несколько узлов и поддерживаются в синхронизации.

Главная цель — продолжить работу при сбое и разгрузить чтение.

Primary / secondary

Primary принимает запись, secondary копируют данные.

Такая роль важна для понимания записи, чтения и failover.

Синхронная

Плюсы: актуальные копии, высокая доступность.
Минусы: задержка записи, плохо подходит для больших расстояний.

Это следует из источника: подтверждения реплик увеличивают время ответа.

Асинхронная

Плюс: запись быстрее.
Минусы: задержка репликации и риск потери части данных при сбое primary.

Primary не ждёт все secondary, поэтому выигрывает скорость, но появляется лаг.

Arbiter

Арбитр голосует на выборах, не хранит данные и не может стать primary.

Его используют, когда нужен дополнительный голос без полной копии данных.

Failover

Если primary недоступен, replica set проводит выборы нового primary.

Автоматическое переключение снижает простой, но приложение должно корректно переживать переподключение.