From 63205ba88c0e741a700edb66524dfc7f394c284b Mon Sep 17 00:00:00 2001 From: Yana <––ƒ––iputilin201@gmail.com> Date: Tue, 10 Dec 2024 21:18:32 +0400 Subject: [PATCH] nikolaeva_yana_lab_8 --- nikolaeva_yana_lab_8/README.md | 62 ++++++++++++++++++++++++++++++++++ 1 file changed, 62 insertions(+) create mode 100644 nikolaeva_yana_lab_8/README.md diff --git a/nikolaeva_yana_lab_8/README.md b/nikolaeva_yana_lab_8/README.md new file mode 100644 index 0000000..fd1040d --- /dev/null +++ b/nikolaeva_yana_lab_8/README.md @@ -0,0 +1,62 @@ +# Лабораторная работа №8: Устройство распределенных систем + +## Что такое распределенная система? + +Распределенная система — это комплекс взаимодействующих компонентов, которые расположены на разных узлах сети +и работают вместе для достижения общей цели. +Узлы могут быть как физически раздельными серверами, так и виртуальными средами, выполняющими определенные задачи. + +### Зачем использовать "распределенный" стиль? + +Сложные системы, такие как социальные сети, требуют высокой производительности, +масштабируемости и отказоустойчивости. Разделяя функционал на отдельные сервисы +(например, один отвечает за обработку сообщений, другой за рекомендации), мы можем: + +1. Уменьшить нагрузку на отдельные компоненты. +2. Легче масштабировать узкие места. +3. Быстрее внедрять изменения, не затрагивая всю систему. + +Кроме того, такая структура облегчает разработку, +так как каждая команда может сосредоточиться на своем микросервисе. + +### Для чего нужны системы оркестрации? + +Системы оркестрации, такие как Kubernetes, управляют распределенными приложениями, упрощая развертывание, масштабирование и мониторинг. Они: +- Автоматизируют процессы, такие как распределение ресурсов и перезапуск упавших узлов. +- Обеспечивают гибкость управления сложными системами. +- +Однако, такие системы добавляют сложность на этапе настройки и требуют новых навыков от разработчиков. + +### Роль очередей сообщений + +Очереди сообщений (например, RabbitMQ, Kafka) используются для асинхронной передачи данных между сервисами. + +Сообщения могут быть запросами, данными для обработки или событиями. Это позволяет: + +- Разгрузить сервисы, обеспечив буферизацию данных. +- Повысить отказоустойчивость, так как потерянные сообщения можно повторно отправить. + +### Преимущества и недостатки + +**Преимущества:** + +- Масштабируемость: можно добавлять новые сервисы без значительных изменений. +- Отказоустойчивость: сбой одного узла не приводит к полной остановке системы. +- Гибкость: легче экспериментировать с новыми технологиями в отдельных сервисах. + +**Недостатки:** + +- Сложность разработки и поддержки: требуется настройка взаимодействия между сервисами. +- Задержки: из-за сетевых вызовов возрастает время ответа. + +### Параллельные вычисления в распределенных системах + +Параллельные вычисления позволяют обрабатывать задачи быстрее, разделяя их между несколькими узлами. +Это полезно в задачах с большими объемами данных (анализ логов, построение рекомендаций). +Однако, если задача не требует значительных вычислительных ресурсов (например, обработка простых запросов), их внедрение может быть избыточным. + +Примеры: + +- Нужны: распределенные базы данных, машинное обучение. +- Не нужны: системы авторизации, где важнее скорость отклика, чем объем данных. +