System Design Space

    Глава 92

    Обновлено: 9 февраля 2026 г. в 20:31

    Distributed Systems: Principles and Paradigms (short summary)

    Прогресс части0/21

    Подробный разбор

    Code of Architecture

    Детальный разбор первой главы от Александра и клуба Code of Architecture

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

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

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

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

    Distributed Systems (4th Edition) — оригинальная обложкаОригинал
    Распределенные системы — переводПеревод

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

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

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

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

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

    Открытость

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

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

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

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

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

    Подробный разбор

    Code of Architecture

    Детальный разбор второй главы от Александра и клуба Code of Architecture

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

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

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

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

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

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

    Роль Middleware

    Middleware — промежуточный слой между ОС и приложениями, обеспечивающий когерентность системы. Примеры: CORBA, RMI, Message Brokers, Web Services. Middleware скрывает гетерогенность платформ и обеспечивает единый API.

    Подробный разбор

    Code of Architecture

    Детальный разбор третьей главы от Александра и клуба Code of Architecture

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

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

    Потоки (Threads)

    • User-level vs Kernel-level threads
    • Многопоточные серверы
    • Thread pools
    • Модель reactor/proactor

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

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

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

    • Stateless vs Stateful серверы
    • Кластеризация серверов
    • Миграция кода
    • Mobile agents

    Подробный разбор

    Code of Architecture

    Детальный разбор четвёртой главы от Александра и клуба Code of Architecture

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

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

    RPC (Remote Procedure Call)

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

    Семантики вызова
    at-least-once, at-most-once, exactly-once
    Стабы (Stubs)
    Клиентские и серверные proxy для маршаллинга

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

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

    AMQPRabbitMQKafkaWebSphere MQ

    Мультикаст

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

    IP Multicast
    Сетевой уровень, best-effort
    Application-level Multicast
    Overlay networks, гарантии доставки

    Gossip-протоколы

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

    Подробный разбор

    Code of Architecture

    Детальный разбор главы о координации от Александра и клуба Code of Architecture

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

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

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

    Физические часы
    • NTP (Network Time Protocol)
    • GPS синхронизация
    • Clock drift и коррекция
    Логические часы
    • Алгоритм Лампорта (happens-before)
    • Векторные часы (causality)
    • Hybrid Logical Clocks

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

    Взаимное исключение
    • Centralized algorithm
    • Distributed algorithm (Ricart-Agrawala)
    • Token ring algorithm
    Выбор лидера
    • Bully Algorithm — выбор узла с макс. ID
    • Ring Algorithm — кольцевой обход
    • Raft Leader Election — современный подход

    Подробный разбор

    Code of Architecture

    Детальный разбор главы об именовании от Александра и клуба Code of Architecture

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

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

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

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

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

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

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

    DNS:Доменные имена
    File systems:Пути к файлам
    X.500:Directory services

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

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

    LDAP:Directory queries
    RDF:Semantic web
    Service Discovery:Consul, etcd

    Подробный разбор

    Code of Architecture

    Детальный разбор главы о консистентности от Александра и клуба Code of Architecture

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

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

    Data-centric модели

    Strict Consistency
    Абсолютный порядок всех операций
    Sequential Consistency
    Все видят одинаковый порядок
    Causal Consistency
    Сохранение причинно-следственных связей
    Eventual Consistency
    Консистентность со временем

    Client-centric модели

    Read Your Writes
    Клиент видит свои записи
    Monotonic Reads
    Монотонность чтения
    Monotonic Writes
    Порядок записей сохраняется
    Writes Follow Reads
    Запись после чтения консистентна

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

    Primary-based

    Remote-write, Local-write protocols

    Replicated-write

    Active replication, Quorum-based

    Cache coherence

    Write-through, Write-back protocols

    Видео-разбор

    Code of Architecture

    Видео-разбор главы об отказоустойчивости от Александра и клуба Code of Architecture

    Смотреть видео

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

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

    Crash failure
    Сервер внезапно останавливается
    Omission failure
    Потеря запросов или ответов
    Timing failure
    Нарушение временных ограничений
    Byzantine failure
    Произвольное (злонамеренное) поведение

    Консенсус

    Paxos

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

    Two-Phase Commit (2PC)

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

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

    Репликация

    Active и Passive replication для высокой доступности

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

    Virtual synchrony для согласованного состояния

    Recovery

    Checkpointing и message logging

    Подробный разбор

    Code of Architecture

    Детальный разбор главы о безопасности от Александра и клуба Code of Architecture

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

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

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

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

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

    Защищённые каналы
    TLS/SSL, mutual authentication, perfect forward secrecy
    Контроль доступа
    ACL, capabilities, role-based access control (RBAC)
    Управление ключами
    PKI, Certificate Authorities, key distribution

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

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

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

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

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

    Вердикт: Книга Таненбаума и ван Стина — это фундаментальный учебник, который даёт глубокое понимание принципов построения распределённых систем. В отличие от практических руководств, она объясняет почему системы работают так, а не иначе. Рекомендуется читать вместе с DDIA: Таненбаум даёт теорию, Kleppmann — практическое применение.

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