> Какие виды репликаций существуют (Go)
Уровень: senior · Роль: backend · Язык: Go · Категория: Технические вопросы
Компании: Employcity
Стек: Go
> Пример ответа
В распределённых системах и базах данных выделяют несколько основных видов репликации, которые применимы и в Go-разработке (например, при работе с etcd, CockroachDB или собственными решениями):
-
Синхронная репликация - мастер ждёт подтверждения от всех реплик перед фиксацией записи. Гарантирует строгую согласованность, но увеличивает задержку. Используется в системах, где важна целостность данных (например, Raft в etcd).
-
Асинхронная репликация - мастер отвечает клиенту сразу, а данные распространяются на реплики позже. Высокая производительность, но возможна потеря данных при сбое мастера. Типична для PostgreSQL, MySQL.
-
Полусинхронная репликация - компромисс: мастер ждёт подтверждения хотя бы от одной реплики, остальные получают данные асинхронно. Используется в кластерных решениях.
-
Мультимастерная репликация - несколько узлов принимают записи, конфликты разрешаются на уровне приложения или алгоритмами (например, CRDT). Пример: CockroachDB с протоколом Raft.
-
Логическая репликация - передача изменений на уровне строк или операций (WAL). Гибкая, позволяет фильтровать данные. Реализована в PostgreSQL через логическое декодирование.
-
Физическая репликация - копирование блоков данных на уровне диска. Проще, но требует идентичной версии СУБД. Используется в MySQL Group Replication.
В Go-стеке часто применяют Raft (консенсусная репликация) для построения отказоустойчивых сервисов, а также паттерн "Event Sourcing" с репликацией событий через брокеры (Kafka, NATS).
> Похожие задачи по Go
Какие доводы и обстоятельства влияют на решение о делении или объединении сервисов
Для чего лучше подходят синхронные и асинхронные репликации
Что такое паттерн разделения на чтение и запись
Почему нельзя заменить WITH (CTE) на подзапрос в SQL
> Похожие задачи по backend
Какие доводы и обстоятельства влияют на решение о делении или объединении сервисов
Для чего лучше подходят синхронные и асинхронные репликации
Что такое паттерн разделения на чтение и запись
Почему нельзя заменить WITH (CTE) на подзапрос в SQL
> ГОТОВЫ К СЛЕДУЮЩЕМУ СОБЕСЕДОВАНИЮ?
Запустите тренировочную сессию с ИИ и получите детальную обратную связь, чтобы увереннее проходить реальные интервью