Files
digital-garden/dev/architecture/Распределённая система.md
2025-01-17 16:55:52 +03:00

4.6 KiB
Raw Permalink Blame History

aliases, tags, date
aliases tags date
распределенная система
maturity/🌱
2025-01-17

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

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

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

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

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

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

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

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

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

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

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

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