В чём разница между leader replica и follower replica
Junior
В чём разница между leader replica и follower replica?
Ответ для собеседования
Leader replica (лидер) — это основная реплика, которая принимает все операции записи и обычно является источником истины для данных. Follower replica (фолловер) пассивно копирует данные с лидера и, как правило, обслуживает только чтения или ждёт момента, чтобы стать лидером при отказе текущего лидера. Главное отличие — лидер обрабатывает записи и координирует кластер, а фолловер лишь реплицирует его состояние и используется для отказоустойчивости и масштабирования чтения.
Подробный ответ
В моделях репликации типа leader–follower (master–slave, primary–replica) все изменения данных проходят через одну центральную реплику — leader replica. Остальные реплики, называемые follower replica, асинхронно или синхронно копируют состояние лидера.Ключевые различия между leader и follower можно описать так:
Источник записи. Leader replica принимает все операции записи: изменения состояния, новые сообщения (например, в Kafka), транзакции (в реляционных БД). Клиенты либо напрямую шлют записи лидеру, либо запросы маршрутизируются к нему через брокер/балансировщик. Follower replica напрямую записи не принимает: она читает лог изменений с лидера и применяет их у себя.
Роль при чтении. Часто лидер тоже обслуживает чтения, но для масштабирования чтений нагрузку распределяют на фолловеры: клиенты читают данные с них, понимая, что данные могут слегка отставать (replication lag). В строгих сценариях консистентности чтения отдают только лидеру.
Консистентность данных. У лидера всегда самое актуальное состояние. Фолловеры могут немного отставать из‑за сетевых задержек или нагрузки. Важно понимать это на собеседовании, когда говорят о eventual consistency и lag между leader и follower.
Отказоустойчивость и выбор нового лидера. Если лидер падает, кластер (через протокол консенсуса или контроллер, как в Kafka) выбирает один из фолловеров, который становится новым лидером. Поэтому follower обязан иметь достаточно актуальный лог, чтобы безопасно перейти в состояние лидера, не потеряв подтверждённые записи.
Масштабирование. Лидеров обычно меньше, чем фолловеров: лидер — узкое место по записям, фолловеры масштабируют чтения и повышают доступность. Добавление новых фолловеров позволяет разгрузить лидер по чтениям, не нарушая модель единственного источника записей.
Ограничения. Так как запись идёт только через лидера, максимальная пропускная способность записи ограничена ресурсами одного узла/партиции-лидера. Для обхода этого ограничения систему шардируют (несколько лидеров на разные партиции), но внутри каждой партиции всё равно есть один лидер и несколько фолловеров.
На собеседовании важно подчеркнуть: leader replica — точка, через которую проходят все изменения и вокруг которой строится согласованность; follower replica — копия, которая повторяет состояние лидера, используется для масштабирования чтения и может стать лидером при отказе текущего. Нашли ошибку? Выделите ее