System Design Space
Граф знанийНастройки

Обновлено: 7 мая 2026 г. в 18:26

Distributed Systems, 4th Edition (short summary)

эксперт

Классика Таненбаума и ван Стина полезна не ностальгией, а тем, что возвращает к фундаменту там, где управляемые сервисы слишком легко прячут базовые идеи.

В реальной инженерной работе эта книга помогает отделять устойчивые принципы координации, консистентности и отказоустойчивости от деталей конкретной платформы.

В интервью и архитектурных обсуждениях она особенно полезна, когда нужно показать, что вы понимаете не только современные инструменты, но и границы применимости классических моделей.

Практическая польза главы

Практика проектирования

Даёт фундамент для осознанного выбора архитектурных моделей в распределённой среде.

Качество решений

Помогает отличать требования теории от ограничений практической эксплуатации.

Аргументация на интервью

Усиливает глубину ответа: можно уверенно объяснять базовые механизмы распределённых систем.

Риски и компромиссы

Показывает, где классические модели требуют адаптации под современные нагрузки и эксплуатационные ограничения.

Distributed Systems, 4th Edition (Распределённые системы)

Авторы: Andrew S. Tanenbaum, Maarten van Steen
Издательство: distributed-systems.net, 2023
Объём: ~1000 страниц

Фундаментальный учебник Таненбаума и ван Стина: прозрачность распределения, архитектуры, коммуникации, координация, репликация, отказоустойчивость и безопасность.

Оригинал
Перевод

в этой книге рассматриваются как набор автономных узлов, которые должны выглядеть для пользователя как единая система. Поэтому важны не только алгоритмы, но и , , и .

Дальше учебник связывает , , , , и в одну инженерную картину: как система сохраняет корректность при задержках, частичных сбоях и сетевых разделениях.

В коммуникациях Таненбаум и ван Стин показывают, как , , , и меняют цену доставки и наблюдаемость состояния.

В главах о координации, отказах и безопасности важны , , , , , , , , , , , , и .

Глава 1: Введение

Связанная глава

Распределённые системы: обзор

Быстрый вход в ключевые свойства распределённых систем и их компромиссы.

Читать обзор

Определение распределённой системы

«Коллекция автономных вычислительных элементов, которая представляется пользователю как единая когерентная система»

Прозрачность

Скрытие сложности распределения от пользователя

Открытость

Стандартные интерфейсы и протоколы

Масштабируемость

Рост без деградации производительности

8 видов прозрачности

Доступ
Скрытие способа доступа к ресурсу
Местоположение
Скрытие физического расположения
Миграция
Скрытие перемещения ресурсов
Релокация
Скрытие перемещения во время работы
Репликация
Скрытие существования копий
Конкурентность
Скрытие совместного использования
Отказ
Скрытие сбоев и восстановления
Персистентность
Скрытие хранения данных

Глава 2: Архитектуры

Связанная глава

Интеграция микросервисов

Практика выбора архитектурного стиля и каналов взаимодействия между сервисами.

Читать обзор

Архитектурные стили

Многоуровневые (Layered)
Вертикальная организация компонентов
Объектные (Object-based)
Распределённые объекты с RMI
SOA / Микросервисы
Сервис-ориентированная архитектура
Publish-Subscribe
Событийно-ориентированная модель

Системные организации

Централизованные
Клиент-серверная модель
Децентрализованные (P2P)
Равноправные узлы без центра
Гибридные
Комбинация подходов (CDN, BitTorrent)

Роль промежуточного ПО

Промежуточное ПО — слой между ОС и приложениями, который удерживает систему согласованной. Примеры: CORBA, RMI, брокеры сообщений и веб-сервисы. Такой слой скрывает различия платформ и даёт единый API.

Глава 3: Процессы

Связанная глава

Операционная система: обзор

Процессы, потоки и изоляция ресурсов как основа исполнения распределённых сервисов.

Читать обзор

Потоки выполнения

  • Пользовательские и ядерные потоки
  • Многопоточные серверы
  • Пулы потоков
  • Модели reactor и proactor

Виртуализация

  • Виртуальные машины
  • Контейнеры
  • Изоляция ресурсов
  • Миграция процессов

Клиенты и серверы

  • Серверы без состояния и с состоянием
  • Кластеризация серверов
  • Миграция кода
  • Мобильные агенты

Глава 4: Коммуникации

Связанная глава

Удалённые вызовы API

Практические подходы к удалённым вызовам и выбор протокола под задачу.

Читать обзор

RPC (Remote Procedure Call)

Синхронный вызов удалённых процедур с семантикой локального вызова

Семантики вызова
at-least-once, at-most-once, exactly-once
Заглушки удалённого вызова
Клиентские и серверные заглушки для маршаллинга

Очереди сообщений

Асинхронная коммуникация через брокеры сообщений

AMQPRabbitMQKafkaWebSphere MQ

Мультикаст

Доставка сообщений группе получателей

IP Multicast
Сетевой уровень, best-effort
Многоадресная доставка на уровне приложения
Оверлейные сети и гарантии доставки

Эпидемические протоколы

Эпидемическое распространение информации: каждый узел периодически передаёт обновления случайным соседям. Такой подход с высокой вероятностью приводит систему к согласованности в конечном итоге при минимальной координации.

Глава 5: Координация

Связанная глава

Выбор лидера: паттерны и реализации

Алгоритмы выбора лидера и устойчивые схемы координации в кластерах.

Читать обзор

Синхронизация часов

Физические часы
  • NTP (Network Time Protocol)
  • GPS синхронизация
  • Дрейф часов и коррекция
Логические часы
  • Алгоритм Лэмпорта и отношение «произошло до»
  • Векторные часы и причинность
  • Гибридные логические часы (HLC)

Алгоритмы координации

Взаимное исключение
  • Централизованный алгоритм
  • Распределённый алгоритм Рикарта — Агравалы
  • Алгоритм маркерного кольца
Выбор лидера
  • Bully Algorithm — выбор узла с максимальным ID
  • Ring Algorithm — обход по кольцу
  • Raft — выбор лидера через сроки полномочий и голоса

Глава 6: Именование

Связанная глава

Обнаружение сервисов (service discovery)

Как сервисы находят друг друга: реестр, проверки работоспособности и разрешение имён.

Читать обзор

Плоские имена

Идентификаторы без структуры

Broadcasting:ARP, DHCP
Forwarding:Pointer chains
DHT:Chord, Pastry

Структурированные имена

Иерархические пространства имён

DNS:Доменные имена
Файловые системы:Пути к файлам
X.500:Службы каталогов

Атрибутивные имена

Поиск по атрибутам

LDAP:Запросы к каталогу
RDF:Семантическая сеть
Обнаружение сервисов:Consul, etcd

Глава 7: Консистентность и репликация

Связанная глава

CAP-теорема

Компромиссы между согласованностью, доступностью и устойчивостью к разделению сети.

Читать обзор

Модели, ориентированные на данные

Строгая консистентность
Абсолютный порядок всех операций
Последовательная консистентность
Все видят одинаковый порядок
Причинная консистентность
Сохранение причинно-следственных связей
Согласованность в конечном итоге
Реплики сходятся со временем

Модели, ориентированные на клиента

Чтение своих записей
Клиент видит свои записи
Монотонное чтение
Монотонность чтения
Монотонные записи
Порядок записей сохраняется
Записи следуют за чтениями
Запись после чтения консистентна

Протоколы согласованности

Протоколы с ведущей репликой

Удалённая запись и локальная запись

Запись в несколько реплик

Активная репликация и кворумные протоколы

Когерентность кэша

Протоколы сквозной и отложенной записи

Глава 8: Отказоустойчивость

Связанная глава

Консенсус: Paxos и Raft

Paxos, Raft и практические схемы достижения согласия при сбоях узлов.

Читать обзор

Модели отказов

Аварийная остановка
Сервер внезапно останавливается
Пропуск сообщений
Потеря запросов или ответов
Нарушение временных ограничений
Нарушение временных ограничений
Византийский отказ
Произвольное (злонамеренное) поведение

Консенсус

Paxos

Классический алгоритм консенсуса Лампорта. Фазы: Prepare → Promise → Accept → Accepted.

Two-Phase Commit (2PC)

Протокол атомарной фиксации для распределённых транзакций. Координатор → Prepare → Vote → Commit/Abort.

Устойчивость процессов

Репликация

Активная и пассивная репликация для высокой доступности

Группы процессов

Виртуальная синхронность для согласованного состояния

Восстановление

Контрольные точки и журналирование сообщений

Глава 9: Безопасность

Связанная глава

Архитектура нулевого доверия

Практика построения безопасности распределённых систем без доверия к периметру.

Читать обзор

Криптографические основы

Симметричное шифрование
AES, один ключ для шифрования/дешифрования
Асимметричное шифрование
RSA, публичный/приватный ключи
Хеш-функции
SHA-256, проверка целостности

Защита распределённых систем

Защищённые каналы
TLS/SSL, взаимная аутентификация, прямая секретность
Контроль доступа
ACL, мандаты доступа, ролевая модель RBAC
Управление ключами
PKI, центры сертификации, распределение ключей

Итоги и рекомендации

Связанная книга

Designing Data-Intensive Applications, 2nd Edition (DDIA)

Практическое продолжение: как применять фундаментальные идеи в реальных системах данных.

Читать обзор

Сильные стороны

  • Фундаментальный охват теории распределённых систем
  • Алгоритмический подход с доказательствами
  • Примеры на Python делают материал доступнее
  • Глубокое покрытие консистентности и координации
  • Отличная глава по безопасности

Кому подойдёт

  • Студентам, изучающим распределённые системы
  • Инженерам, желающим понять теоретические основы
  • Тем, кто хочет глубже понять алгоритмы консенсуса
  • Подготовка к позициям уровня Staff+ Engineer
  • Исследователям и академическим специалистам

Вердикт: книга Таненбаума и ван Стина — фундаментальный учебник для тех, кто хочет понимать распределённые системы на уровне моделей, алгоритмов и ограничений сети. В отличие от практических руководств, она объясняет почему системы работают именно так. Лучше всего читать её вместе с DDIA: Таненбаум даёт теоретический фундамент, DDIA показывает инженерное применение.

Источники

Глава 1

Введение в распределённые системы

Ключевые свойства распределённой системы: автономные узлы, единый образ для пользователя и прозрачность распределения.

Читать разбор

Глава 2

Архитектуры распределённых систем

Архитектурные стили, системные организации и роль промежуточного ПО.

Читать разбор

Глава 3

Процессы и исполнение

Потоки, виртуализация, миграция кода и модели клиент-серверного исполнения.

Читать разбор

Глава 4

Коммуникации и обмен сообщениями

Удалённые вызовы, очереди сообщений, многоадресная доставка и эпидемические протоколы.

Читать разбор

Глава 5

Координация в распределённых системах

Время, взаимное исключение, выбор лидера и согласование действий между узлами.

Читать разбор

Глава 6

Именование и обнаружение сервисов

Плоские, структурированные и атрибутивные имена, а также поиск сервисов в сети.

Читать разбор

Глава 7

Консистентность и репликация

Модели согласованности, клиентские гарантии и протоколы работы с репликами.

Читать разбор

Глава 9

Безопасность распределённых систем

Криптографические основы, защищённые каналы, контроль доступа и управление ключами.

Читать разбор

Связанные главы

Где найти книгу

Чтобы отмечать прохождение, включи трекинг в Настройки