1 Commits

Author SHA1 Message Date
56d907d957 lab7 2024-01-07 00:04:25 +04:00
2 changed files with 25 additions and 33 deletions

View File

@@ -0,0 +1,25 @@
# Отчет по лабораторной работе №7
Выполнил студент гр. ИСЭбд-41 Михайлов Ю.С.
# Эссе на тему балансировки нагрузки
Балансировка нагрузки в распределенных системах - это такой алгоритм, который помогает избежать перегрузки одних узлов системы и застоя других, что повышает производительность системы и ее отказоустойчивость.
Существует несколько методов балансировки нагрузки, например, такие как :
- раунд-робин, или по круговороту; запросы распределяются по серверам ко кругу
- взвешенное распределение, то есть с помощью весовых коэффициентов
- на основе состояния, здесь учитывается загрузка сервера
Данные платформы включают в себя не только балансировку нагрузки, но и кэширование, оптимизацию и шифрование.
Процесс балансировки нагрузки на базах данных отличается от балансировки на серверах.важно принимать во внимание особенности SQL и NoSQL баз данных и выбрать один из методов распределения запросов. Такие как:
- репликация, когда запрос копируется на доступные серверы
- шардинг, такое разделение данных на несколько независимых фрагментов (шардов)
- кластеризация, объединение нескольких баз данных
Также существуют открытие технологии для балансировки, которые позволяют управлять трафиком в различных средах. Например, Nginx, HAProxy, и Apache HTTP Server с модулем mod_proxy_balancer. Эти решения обеспечивают стабильное и эффективное распределение запросов в системе, что улучшает производительность и отказоустойчивость.
Балансировка нагрузки в базах данных является важным аспектом для обеспечения эффективной работы и предотвращения перегрузок на отдельных узлах или серверах. Для этого используются различные методы: репликация данных (создание копий), шардирование (разбиение БД на фрагменты), горизонтальное (добавление узлов) и вертикальное масштабирование (увеличение производительности узлов).
Реверс-прокси в балансировке нагрузки — посредник между клиентами и серверами, распределяет запросы, маршрутизирует трафик, обеспечивает отказоустойчивость, централизованное управление трафиком и кэширование.

View File

@@ -1,33 +0,0 @@
# Отчет по лабораторной работе №8
Выполнил студент гр. ИСЭбд-41 Михайлов Ю.С.
## Задачи
Написать небольшое эссе (буквально несколько абзацев) своими словами. А помогут Вам в этом вопросы из списка:
1. Зачем сложные системы (например, социальная сеть ВКонтакте) пишутся в "распределенном" стиле, где каждое отдельное приложение (или сервис) функционально выполняет только ограниченный спектр задач?
2. Для чего были созданы системы оркестрации приложений? Каким образом они упрощают / усложняют разработку и сопровождение распределенных систем?
3. Для чего нужны очереди обработки сообщений и что может подразумеваться под сообщениями?
4. Какие преимущества и недостатки распределенных приложений существуют на Ваш взгляд?
5. Целесообразно ли в сложную распределенную систему внедрять параллельные вычисления? Приведите примеры, когда это действительно нужно, а когда нет.
## Эссе
Сложные системы, такие как социальная сеть ВКонтакте, пишутся в распределенном стиле так как:
1. Это делает систему гибкой и масштабируемой, позволяет добавлять новые функции и возможности без влияния на работу других компонентов.
2. Упрощает обслуживание и обновление системы, поскольку изменения вносятся только в одну часть приложения.
3. Снижает риск сбоев и ошибок, так как если один компонент выходит из строя, другие продолжают работать.
Системы оркестрации приложений были созданы для того, чтобы упростить управление различных сервисов и приложений в больших распределенных системах. Они позволяют автоматизировать процессы развертывания, масштабирования и мониторинга приложений, а также управлять доступом к ресурсам и обеспечивать согласованность данных. Оркестрация приложений упрощает разработку и сопровождение таких систем.
Очереди обработки сообщений нужны для обеспечения асинхронной коммуникации между компонентами распределенной системы. Сообщения могут быть любыми данными, передаваемыми между различными частями системы, такими как запросы, ответы, обновления данных и так далее. Очереди сообщений позволяют организовать последовательность выполнения задач, обеспечивая их обработку в порядке поступления, даже если компоненты системы работают параллельно.
Преимущества распределенных приложений включают масштабируемость, гибкость, устойчивость к сбоям и ошибкам, а также возможность быстрого внедрения новых функций и возможностей. Однако у них также есть и недостатки, такие как сложность в управлении и сопровождении, риск потери данных при переходе между узлами, а также проблемы с согласованностью данных и синхронизацией между компонентами.
Целесообразно внедрять параллельные вычисления в сложную распределенную систему:
Интенсивная вычислительная нагрузка: Если в системе присутствует интенсивная вычислительная задача, которую можно разделить на подзадачи, параллельные вычисления позволяют использовать множество узлов для ускоренного выполнения. Высоконагруженные системы: В системах с высокой нагрузкой, таких как веб-серверы или системы обработки транзакций, параллельные вычисления могут повысить пропускную способность и обработку запросов.
Нецелесообразно внедрять параллельные вычисления:
Наличие сетевых задержек: Если распределенная среда характеризуется высокими сетевыми задержками, параллельные вычисления могут не оправдывать себя из-за времени передачи данных.