Ответ
Репликация — это механизм копирования данных с одного сервера БД (мастера) на один или несколько других (слейвов). В моей практике она применяется для решения нескольких ключевых задач:
-
Масштабирование чтения (Read Scaling) Основная нагрузка в веб-приложениях — это чтение. Мы направляем SELECT-запросы на слейвы, оставляя мастеру только операции записи (INSERT, UPDATE, DELETE). Это значительно повышает общую пропускную способность.
-
Повышение отказоустойчивости (High Availability) Если мастер выходит из строя, один из слейвов может быть оперативно повышен до роли мастера (failover), минимизируя время простоя приложения.
-
Геораспределение (Geo-Distribution) Для глобальных приложений мы размещаем реплики в дата-центрах ближе к пользователям. Это снижает сетевую задержку для операций чтения.
-
Выгрузка специализированных задач Тяжёлые аналитические отчёты или операции бэкапа выполняются на выделенной реплике, чтобы не создавать нагрузку на продакшен-базу.
Важный нюанс: необходимо учитывать репликационный лаг — задержку между записью на мастере и её отражением на слейве. Логика, где критична консистентность сразу после записи (например, показ только что созданного заказа), должна работать с мастером.