Мастер-слейв (Master-Slave) репликация — это метод репликации баз данных, в котором один сервер (мастер) является источником данных, и все остальные серверы (слейвы) копируют данные из мастера. Этот метод обеспечивает резервное копирование данных, повышает отказоустойчивость и может использоваться для распределения нагрузки чтения.
Вот основные преимущества и недостатки мастер-слейв репликации:
Преимущества:
- Отказоустойчивость для чтения: Если один из слейвов выходит из строя, приложение может продолжать получать данные с мастера или других слейвов.
- Резервное копирование: Слейвы могут служить в качестве резервных копий данных, что может быть полезно для восстановления после сбоев или ошибок.
- Распределение нагрузки: Запросы на чтение могут быть распределены между несколькими слейвами, что улучшает производительность системы.
- Улучшенная производительность: Поскольку слейвы могут обслуживать запросы на чтение, мастер освобождается от некоторых нагрузок.
Недостатки:
- Отсутствие отказоустойчивости для записи: Если мастер выходит из строя, записи становятся невозможными, и система может столкнуться с проблемой доступа к данным.
- Задержка репликации: Существует некоторая задержка между моментом изменения данных на мастере и их репликацией на слейвах.
- Сложности с обработкой транзакций: В случае отказа мастера, система может столкнуться с проблемой обработки транзакций.
- Сложности при масштабировании записей: Мастер может стать узким местом при масштабировании записей, так как все записи происходят на одном сервере.
Мастер-слейв репликация является популярным методом для обеспечения отказоустойчивости и повышения производительности в сценариях, где записи происходят преимущественно на одном сервере, а читаются с нескольких серверов.