Основы распределённых систем
Ключевые концепции распределённых систем: консенсус, репликация, согласованность.
Распределённые системы — это системы, компоненты которых находятся на разных машинах и взаимодействуют через сеть.
Основные вызовы
- Сетевые сбои — сеть ненадёжна
- Частичные отказы — часть системы может упасть
- Отсутствие глобального времени — часы не синхронизированы
CAP-теорема
Нельзя одновременно гарантировать:
- C (Consistency) — согласованность
- A (Availability) — доступность
- P (Partition tolerance) — устойчивость к разделению
При разделении сети нужно выбирать между C и A.
Консенсус
Алгоритмы консенсуса (Raft, Paxos) позволяют узлам договориться о значении.
Лидер → Follower 1
→ Follower 2
→ Follower 3
Запись считается подтверждённой после получения большинства голосов.
Репликация
Синхронная
Запись подтверждается после записи на все реплики.
- Плюс: строгая согласованность
- Минус: высокая задержка
Асинхронная
Запись подтверждается сразу, реплики обновляются позже.
- Плюс: низкая задержка
- Минус: возможна потеря данных
Рекомендации
- Используйте идемпотентные операции
- Планируйте отказы
- Тестируйте с Chaos Engineering