This commit is contained in:
= 2025-01-03 16:21:37 +04:00
parent bc087de470
commit 8263eef866

View File

@ -0,0 +1,27 @@
# Лабораторная работа №8 - Про устройство распределенных систем
## ПИбд-42 || Давыдов Юрий
### Задание:
Написать небольшое эссе (буквально несколько абзацев) своими словами.
Сложные системы, такие как социальная сеть ВКонтакте, разрабатываются в распределённой архитектуре, потому что такой подход позволяет эффективно управлять запросами, обеспечивать отказоустойчивость и масштабируемость. Каждый сервис выполняет узкоспециализированные функции, например, сервис аутентификации или сервис рекомендаций. Это важно, потому что в случае сбоя одного из сервисов остальные продолжают работать, что снижает вероятность полной остановки системы.
Системы оркестрации приложений предназначены для управления различными компонентами распределённой системы. Они упрощают разработку и обслуживание, автоматизируя процессы управления, масштабирования и обновлений. Однако они требуют от разработчиков дополнительных знаний и умений, что добавляет сложности. Примеры таких систем — Kubernetes и Docker Swarm.
Очереди обработки сообщений используются для асинхронного обмена данными между сервисами, обеспечивая их взаимодействие. Сообщения могут быть любыми данными или запросами, которые передаются между компонентами системы. Очереди помогают эффективно управлять потоком данных, предотвращая перегрузки. Примеры таких систем — RabbitMQ и Apache Kafka.
Преимущества распределённых систем:
Повышенная отказоустойчивость;
Лучшая масштабируемость;
Возможность балансировки нагрузки между серверами.
Недостатки:
Более сложная разработка по сравнению с монолитными системами;
Монолитные системы обычно требуют меньше времени на взаимодействие компонентов, так как все компоненты работают в одном процессе;
Распределённые системы требуют дополнительных организационных и ресурсных затрат для разработки и поддержки.
Внедрение параллельных вычислений в сложные распределённые системы целесообразно в случаях, когда необходимо обрабатывать независимые задачи или когда требуется высокая производительность, например, при выполнении сложных математических расчётов или обработке больших данных. Однако это не всегда оправдано, особенно когда задачи маленькие или последовательные, как, например, рекурсивное вычисление факториала числа.
Итак, распределённые системы — это важная и необходимая архитектура, которая может быть оптимальной для некоторых случаев, но не всегда. Правильный выбор подхода на этапе проектирования критичен для успеха системы.