Распределённая система — это группа независимых компьютеров, которые взаимодействуют через сеть для выполнения общей задачи. Для пользователя такая система выглядит как единое целое.
Примеры: кластеры серверов, системы хранения данных (например, Hadoop, Cassandra), платформы потоковой обработки (Kafka, Flink) и блокчейн-сети.
Основные характеристики:
- Отсутствие общего состояния: Каждый узел работает независимо, состояние хранится локально или реплицируется между узлами.
- Прозрачность распределения: Система должна скрывать сложность распределения от пользователя, обеспечивая:
- Доступ: пользователю не нужно знать, на каком узле хранятся данные.
- Расположение: данные могут быть перемещены между узлами.
- Сопряжённость: система должна справляться с частичными сбоями.
- Масштабируемость: Возможность увеличивать производительность системы за счёт добавления новых узлов.
- Отказоустойчивость: Система продолжает работать даже при сбое отдельных компонентов.
- Согласованность данных: Обеспечение актуальности данных на всех узлах в условиях асинхронных операций.
Проблемы распределённых систем
- Согласованность данных (CAP-теорема):
- Система не может одновременно обеспечивать все три свойства:
- Согласованность (Consistency): Все узлы возвращают одинаковые данные.
- Доступность (Availability): Каждый запрос получает ответ, даже при сбоях.
- Устойчивость к разделению (Partition Tolerance): Система работает при разделении сети.
- Система не может одновременно обеспечивать все три свойства:
- Управление отказами: Определение, какие узлы вышли из строя, и их восстановление.
- Сложность разработки: Необходимость учитывать сетевые задержки, частичные сбои и распределённое состояние.
- Производительность: Распределённые операции могут быть медленнее из-за необходимости синхронизации данных.
Модели взаимодействия
- Клиент-сервер: Клиенты отправляют запросы, серверы обрабатывают их.
- Peer-to-Peer (P2P): Все узлы равны и взаимодействуют напрямую. Пример: BitTorrent, блокчейн.
- Публикация-подписка (Pub/Sub): Узлы подписываются на определённые темы и получают уведомления о новых событиях. Пример: Kafka, RabbitMQ.
Мета информация
Область:: 00 Архитектура ИС
Родитель:: Информационная система
Источник::
Создана:: 2025-01-17
Автор::