forked from v.moiseev/distributed-computing
Compare commits
1 Commits
mikhailov-
...
mikhailov-
| Author | SHA1 | Date | |
|---|---|---|---|
| 65f495ef9b |
@@ -1,25 +0,0 @@
|
||||
# Отчет по лабораторной работе №7
|
||||
|
||||
Выполнил студент гр. ИСЭбд-41 Михайлов Ю.С.
|
||||
|
||||
# Эссе на тему балансировки нагрузки
|
||||
|
||||
Балансировка нагрузки в распределенных системах - это такой алгоритм, который помогает избежать перегрузки одних узлов системы и застоя других, что повышает производительность системы и ее отказоустойчивость.
|
||||
|
||||
Существует несколько методов балансировки нагрузки, например, такие как :
|
||||
- раунд-робин, или по круговороту; запросы распределяются по серверам ко кругу
|
||||
- взвешенное распределение, то есть с помощью весовых коэффициентов
|
||||
- на основе состояния, здесь учитывается загрузка сервера
|
||||
|
||||
Данные платформы включают в себя не только балансировку нагрузки, но и кэширование, оптимизацию и шифрование.
|
||||
|
||||
Процесс балансировки нагрузки на базах данных отличается от балансировки на серверах.важно принимать во внимание особенности SQL и NoSQL баз данных и выбрать один из методов распределения запросов. Такие как:
|
||||
- репликация, когда запрос копируется на доступные серверы
|
||||
- шардинг, такое разделение данных на несколько независимых фрагментов (шардов)
|
||||
- кластеризация, объединение нескольких баз данных
|
||||
|
||||
Также существуют открытие технологии для балансировки, которые позволяют управлять трафиком в различных средах. Например, Nginx, HAProxy, и Apache HTTP Server с модулем mod_proxy_balancer. Эти решения обеспечивают стабильное и эффективное распределение запросов в системе, что улучшает производительность и отказоустойчивость.
|
||||
|
||||
Балансировка нагрузки в базах данных является важным аспектом для обеспечения эффективной работы и предотвращения перегрузок на отдельных узлах или серверах. Для этого используются различные методы: репликация данных (создание копий), шардирование (разбиение БД на фрагменты), горизонтальное (добавление узлов) и вертикальное масштабирование (увеличение производительности узлов).
|
||||
|
||||
Реверс-прокси в балансировке нагрузки — посредник между клиентами и серверами, распределяет запросы, маршрутизирует трафик, обеспечивает отказоустойчивость, централизованное управление трафиком и кэширование.
|
||||
33
tasks/mikhailov-ys/lab_8/README.md
Normal file
33
tasks/mikhailov-ys/lab_8/README.md
Normal file
@@ -0,0 +1,33 @@
|
||||
# Отчет по лабораторной работе №8
|
||||
|
||||
Выполнил студент гр. ИСЭбд-41 Михайлов Ю.С.
|
||||
|
||||
## Задачи
|
||||
|
||||
Написать небольшое эссе (буквально несколько абзацев) своими словами. А помогут Вам в этом вопросы из списка:
|
||||
1. Зачем сложные системы (например, социальная сеть ВКонтакте) пишутся в "распределенном" стиле, где каждое отдельное приложение (или сервис) функционально выполняет только ограниченный спектр задач?
|
||||
2. Для чего были созданы системы оркестрации приложений? Каким образом они упрощают / усложняют разработку и сопровождение распределенных систем?
|
||||
3. Для чего нужны очереди обработки сообщений и что может подразумеваться под сообщениями?
|
||||
4. Какие преимущества и недостатки распределенных приложений существуют на Ваш взгляд?
|
||||
5. Целесообразно ли в сложную распределенную систему внедрять параллельные вычисления? Приведите примеры, когда это действительно нужно, а когда нет.
|
||||
|
||||
## Эссе
|
||||
|
||||
Сложные системы, такие как социальная сеть ВКонтакте, пишутся в распределенном стиле так как:
|
||||
1. Это делает систему гибкой и масштабируемой, позволяет добавлять новые функции и возможности без влияния на работу других компонентов.
|
||||
2. Упрощает обслуживание и обновление системы, поскольку изменения вносятся только в одну часть приложения.
|
||||
3. Снижает риск сбоев и ошибок, так как если один компонент выходит из строя, другие продолжают работать.
|
||||
|
||||
Системы оркестрации приложений были созданы для того, чтобы упростить управление различных сервисов и приложений в больших распределенных системах. Они позволяют автоматизировать процессы развертывания, масштабирования и мониторинга приложений, а также управлять доступом к ресурсам и обеспечивать согласованность данных. Оркестрация приложений упрощает разработку и сопровождение таких систем.
|
||||
|
||||
Очереди обработки сообщений нужны для обеспечения асинхронной коммуникации между компонентами распределенной системы. Сообщения могут быть любыми данными, передаваемыми между различными частями системы, такими как запросы, ответы, обновления данных и так далее. Очереди сообщений позволяют организовать последовательность выполнения задач, обеспечивая их обработку в порядке поступления, даже если компоненты системы работают параллельно.
|
||||
|
||||
Преимущества распределенных приложений включают масштабируемость, гибкость, устойчивость к сбоям и ошибкам, а также возможность быстрого внедрения новых функций и возможностей. Однако у них также есть и недостатки, такие как сложность в управлении и сопровождении, риск потери данных при переходе между узлами, а также проблемы с согласованностью данных и синхронизацией между компонентами.
|
||||
|
||||
Целесообразно внедрять параллельные вычисления в сложную распределенную систему:
|
||||
|
||||
Интенсивная вычислительная нагрузка: Если в системе присутствует интенсивная вычислительная задача, которую можно разделить на подзадачи, параллельные вычисления позволяют использовать множество узлов для ускоренного выполнения. Высоконагруженные системы: В системах с высокой нагрузкой, таких как веб-серверы или системы обработки транзакций, параллельные вычисления могут повысить пропускную способность и обработку запросов.
|
||||
|
||||
Нецелесообразно внедрять параллельные вычисления:
|
||||
|
||||
Наличие сетевых задержек: Если распределенная среда характеризуется высокими сетевыми задержками, параллельные вычисления могут не оправдывать себя из-за времени передачи данных.
|
||||
Reference in New Issue
Block a user