Распределённая система — это группа независимых компьютеров, которые взаимодействуют через сеть для выполнения общей задачи. Для пользователя такая система выглядит как единое целое.

Примеры: кластеры серверов, системы хранения данных (например, Hadoop, Cassandra), платформы потоковой обработки (Kafka, Flink) и блокчейн-сети.

Основные характеристики:

  • Отсутствие общего состояния: Каждый узел работает независимо, состояние хранится локально или реплицируется между узлами.
  • Прозрачность распределения: Система должна скрывать сложность распределения от пользователя, обеспечивая:
    • Доступ: пользователю не нужно знать, на каком узле хранятся данные.
    • Расположение: данные могут быть перемещены между узлами.
    • Сопряжённость: система должна справляться с частичными сбоями.
  • Масштабируемость: Возможность увеличивать производительность системы за счёт добавления новых узлов.
  • Отказоустойчивость: Система продолжает работать даже при сбое отдельных компонентов.
  • Согласованность данных: Обеспечение актуальности данных на всех узлах в условиях асинхронных операций.

Проблемы распределённых систем

  • Согласованность данных (CAP-теорема):
    • Система не может одновременно обеспечивать все три свойства:
      • Согласованность (Consistency): Все узлы возвращают одинаковые данные.
      • Доступность (Availability): Каждый запрос получает ответ, даже при сбоях.
      • Устойчивость к разделению (Partition Tolerance): Система работает при разделении сети.
  • Управление отказами: Определение, какие узлы вышли из строя, и их восстановление.
  • Сложность разработки: Необходимость учитывать сетевые задержки, частичные сбои и распределённое состояние.
  • Производительность: Распределённые операции могут быть медленнее из-за необходимости синхронизации данных.

Модели взаимодействия

  • Клиент-сервер: Клиенты отправляют запросы, серверы обрабатывают их.
  • Peer-to-Peer (P2P): Все узлы равны и взаимодействуют напрямую. Пример: BitTorrent, блокчейн.
  • Публикация-подписка (Pub/Sub): Узлы подписываются на определённые темы и получают уведомления о новых событиях. Пример: Kafka, RabbitMQ.

Мета информация

Область:: 00 Архитектура ИС
Родитель:: Информационная система
Источник::
Создана:: 2025-01-17
Автор::

Дополнительные материалы

Дочерние заметки