forked from v.moiseev/distributed-computing
Compare commits
1 Commits
kazakov-ev
...
kazakov-ev
| Author | SHA1 | Date | |
|---|---|---|---|
| e8b7c46d06 |
39
tasks/kazakov-ev/lab_7/README.md
Normal file
39
tasks/kazakov-ev/lab_7/README.md
Normal file
@@ -0,0 +1,39 @@
|
||||
# Отчет по лабораторной работе №7
|
||||
Выполнил студент гр. ИСЭбд-41 Казаков Е.В.
|
||||
|
||||
## Вопросы
|
||||
Написать небольшое эссе (буквально несколько абзацев) своими словами. А помогут Вам в этом вопросы из списка:
|
||||
|
||||
1.Какие алгоритмы и методы используются для балансировки нагрузки?
|
||||
|
||||
2.Какие открытые технологии существуют для балансировки нагрузки?
|
||||
|
||||
3.Как осуществляется балансировка нагрузки на базах данных?
|
||||
|
||||
4.Реверс-прокси как один из элементов балансировки нагрузки.
|
||||
|
||||
## Эссе
|
||||
|
||||
1. Алгоритмы и методы балансировки нагрузки
|
||||
- Раунд-робин: Запросы распределяются между серверами в равных долях, каждый сервер получает запрос в порядке очереди.
|
||||
- Взвешенный раунд-робин: Запросы распределяются между серверами с учетом их пропускной способности или нагрузки, чтобы более мощные серверы получали больше запросов.
|
||||
- IP хэширование: Используется IP-адрес клиента для распределения запросов. Каждый клиент получает один и тот же сервер при повторном обращении.
|
||||
- Алгоритмы предсказывающего анализа: Используются статистические данные и анализ прошлых запросов для предсказания оптимального распределения нагрузки.
|
||||
|
||||
2. Открытые технологии балансировки нагрузки
|
||||
- Nginx: Легкий веб-сервер, способный работать как прокси-сервер и балансировщик нагрузки.
|
||||
- HAProxy: Балансировщик нагрузки с открытым исходным кодом, специализирующийся на высокой доступности и производительности.
|
||||
- Apache HTTP Server с модулем mod_proxy_balancer: Популярный веб-сервер, позволяющий выполнить балансировку нагрузки с помощью модуля mod_proxy_balancer.
|
||||
- Microsoft Network Load Balancing (NLB): Решение для балансировки нагрузки в среде Windows, встроенное в ОС Windows Server.
|
||||
|
||||
3. Балансировка нагрузки на базах данных
|
||||
Балансировка нагрузки на базах данных может быть достигнута с использованием следующих методов:
|
||||
- Репликация: Создание дубликатов баз данных для распределения нагрузки между серверами.
|
||||
- Шардинг: Разбиение данных на отдельные серверы, каждый из которых отвечает за определенную часть информации.
|
||||
- Кластеризация: Совместное использование ресурсов нескольких серверов для достижения более высокой производительности и отказоустойчивости.
|
||||
|
||||
4. Реверс-прокси как один из элементов балансировки нагрузки
|
||||
Реверс-прокси является компонентом, который обрабатывает входящие запросы от клиентов и перенаправляет их на соответствующие серверы. Он может быть сконфигурирован для выполнения балансировки нагрузки, решая такие задачи, как:
|
||||
- Распределение запросов между несколькими серверами.
|
||||
- Мониторинг состояния серверов и исключение недоступных серверов из пула.
|
||||
- Кеширование ответов для улучшения производительности.
|
||||
@@ -1,44 +0,0 @@
|
||||
# Отчет по лабораторной работе №8
|
||||
|
||||
Выполнил студент гр. ИСЭбд-41 Миронов Е.О.
|
||||
|
||||
## Задачи
|
||||
|
||||
Написать небольшое эссе (буквально несколько абзацев) своими словами. А помогут Вам в этом вопросы из списка:
|
||||
1. Зачем сложные системы (например, социальная сеть ВКонтакте) пишутся в "распределенном" стиле, где каждое отдельное приложение (или сервис) функционально выполняет только ограниченный спектр задач?
|
||||
2. Для чего были созданы системы оркестрации приложений? Каким образом они упрощают / усложняют разработку и сопровождение распределенных систем?
|
||||
3. Для чего нужны очереди обработки сообщений и что может подразумеваться под сообщениями?
|
||||
4. Какие преимущества и недостатки распределенных приложений существуют на Ваш взгляд?
|
||||
5. Целесообразно ли в сложную распределенную систему внедрять параллельные вычисления? Приведите примеры, когда это действительно нужно, а когда нет.
|
||||
|
||||
## Эссе
|
||||
|
||||
1. Зачем сложные системы (например, социальная сеть ВКонтакте) пишутся в "распределенном" стиле, где каждое отдельное приложение (или сервис) функционально выполняет только ограниченный спектр задач?
|
||||
|
||||
Во-первых, такие системы обрабатывают огромные объемы данных и высокие нагрузки, поэтому разделение функциональности между отдельными приложениями или сервисами позволяет более эффективно масштабировать и обрабатывать данные. Каждое приложение выполняет свою специфическую задачу, что позволяет легко масштабировать и модифицировать систему.
|
||||
|
||||
2. Для чего были созданы системы оркестрации приложений? Каким образом они упрощают / усложняют разработку и сопровождение распределенных систем?
|
||||
|
||||
Системы оркестрации приложений созданы для упрощения и управления разработкой и сопровождением распределенных систем. Они предоставляют средства для координации работы различных сервисов, обеспечивают управление состоянием, масштабирование и мониторинг системы. Это позволяет разработчикам концентрироваться на логике приложений, не беспокоясь о низкоуровневых деталях взаимодействия между сервисами. Однако, оркестрация приложений может усложнить разработку и требует дополнительных усилий по настройке и поддержке системы.
|
||||
|
||||
3. Для чего нужны очереди обработки сообщений и что может подразумеваться под сообщениями?
|
||||
|
||||
Очереди обработки сообщений играют важную роль в распределенных системах. Они служат для асинхронной коммуникации между компонентами системы и обеспечивают отказоустойчивость и гибкость в обработке данных. Сообщения могут представлять собой запросы на выполнение определенной задачи, информацию о событии или результаты выполнения действий. Очереди позволяют более гибко и эффективно управлять потоками данных и обеспечивать их последовательную обработку, даже при высоких нагрузках.
|
||||
|
||||
4. Какие преимущества и недостатки распределенных приложений существуют на Ваш взгляд?
|
||||
|
||||
Распределенные приложения имеют свои преимущества и недостатки. Они позволяют обрабатывать большие объемы данных, расширяться горизонтально и обеспечивать высокую отказоустойчивость. Однако, разработка и поддержка таких систем могут быть сложными и требовать специфических знаний. Также, распределенные системы могут страдать от проблем с консистентностью данных, синхронизацией и возникающими задержками в обработке.
|
||||
|
||||
5. Целесообразно ли в сложную распределенную систему внедрять параллельные вычисления? Приведите примеры, когда это действительно нужно, а когда нет.
|
||||
|
||||
Внедрение параллельных вычислений в сложную распределенную систему может быть целесообразным при определенных условиях. Рассмотрим несколько примеров, когда это может быть полезно и когда необходимость в этом отсутствует:
|
||||
|
||||
1. Обработка больших объемов данных: Если система работает с огромными объемами данных, параллельные вычисления могут значительно ускорить обработку. Например, в аналитической системе, которая агрегирует и анализирует большие объемы данных, параллельные вычисления помогут распределить нагрузку на несколько узлов и ускорить обработку данных.
|
||||
|
||||
2. Вычислительно интенсивные задачи: Если система выполняет вычислительно сложные операции или алгоритмы, параллельные вычисления могут значительно сократить время обработки. Например, в системе машинного обучения, где требуется обучение модели на большом объеме данных, параллельные вычисления позволят распределить вычислительную нагрузку между несколькими узлами и ускорить процесс обучения.
|
||||
|
||||
Однако, есть случаи, когда внедрение параллельных вычислений может быть излишним:
|
||||
|
||||
1. Простые операции: Если операции в системе относительно простые и не требуют значительных вычислительных ресурсов, то внедрение параллельных вычислений может быть излишним. Например, в системе управления пользователями, где требуется простая обработка запросов на создание, обновление или удаление пользователей, параллельные вычисления не приведут к значительному ускорению.
|
||||
|
||||
2. Необходимость в строгой последовательности: В некоторых случаях, система может требовать строгой последовательности выполнения операций. В таких случаях, параллельные вычисления могут нарушить эту последовательность и привести к нежелательным результатам. Например, в базе данных, где нужно манипулировать данными с использованием транзакций, параллельне вычисления могут нарушить целостность данных.
|
||||
Reference in New Issue
Block a user