Продвинутый

Консенсус и выбор лидера

Урок 2 из 3 в курсе Распределённые системы: основы

Содержание курса (2/3)

Консенсус и выбор лидера

как несколько нод приходят к согласию о состоянии — фундамент Kafka, etcd, Cassandra и др.

Почему это важно: Консенсусные алгоритмы (Raft, Paxos) лежат в основе всех современных распределённых систем. Понимание их основы — ключ к работе с инфраструктурой.

Главная идея

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

Как это выглядит на практике

  1. Кластер из 5 нод запускается.
  2. Ноды голосуют, выбирают лидера большинством.
  3. Лидер принимает запросы и реплицирует записи на followers.
  4. При падении лидера запускается новое голосование.

Что происходит под капотом

  • Raft: понятный алгоритм консенсуса с разделением на leader election и log replication.
  • Paxos: исторически первый, сложнее для понимания, лежит в основе многих систем.
  • Quorum: большинство (N/2 + 1) необходимо для принятия решений.
  • Split brain: предотвращается требованием большинства.

Типичные ошибки и заблуждения

  • Ошибка: 2 ноды достаточно для отказоустойчивости. Нужно минимум 3 для большинства.
  • Ошибка: больше нод всегда лучше. Латентность консенсуса растёт с числом нод.
  • Ошибка: консенсус мгновенный. Каждое решение — это round-trip между нодами.
  • Ошибка: лидер должен быть всегда. При отказе временно никто не лидер.

Ключевые выводы

  • Минимум 3 ноды для real consensus.
  • Большинство = quorum.
  • Лидер упрощает координацию.
  • Консенсус не бесплатен по latency.

Термины урока

Consensus: процесс достижения согласия между нодами.
Raft: современный понятный алгоритм консенсуса.
Quorum: минимальное число нод для принятия решения.
Leader election: процесс выбора главной ноды.

Связь с работой backend-разработчика

Понимание консенсуса помогает осознанно настраивать кластеры (количество нод, read/write quorum) и интерпретировать поведение БД при сбоях.

Мини-разбор реальной ситуации

Команда запустила etcd на 2 нодах для 'экономии'. При сбое одной — кластер становился недоступен полностью. Перевели на 3 ноды — отказоустойчивость восстановлена.

Что запомнить

  • Минимум 3 ноды для отказоустойчивости.
  • Quorum = большинство.
  • Консенсус стоит latency.

Итог

Консенсусные алгоритмы — это сердце распределённых систем. Без них невозможно надёжно координировать работу множества нод.

Комментарии к уроку

Войдите, чтобы оставить комментарий.

Пока нет комментариев — будьте первым.