30 lines
4.0 KiB
Markdown
30 lines
4.0 KiB
Markdown
|
# Отчет. Лабораторная работа 8
|
|||
|
|
|||
|
### Популярность распределенных систем (РС)
|
|||
|
Распределенные системы обладают рядом преимуществ, которые побуждают разработчиков адаптировать уже существующие решения к такой архитектуре (и переписывать монолит на микросервисы).
|
|||
|
Данный подход позволяет сделать систему более отказоустойчивой, так как её компоненты становятся независимыми друг от друга.
|
|||
|
Особенно это важно для сложных систем, для которых появляется возможность масштабировать отдельные узлы РС.
|
|||
|
Также при разработке распределенных систем удобно распределяются задачи между командами разработки и есть возможность
|
|||
|
использовать свой стек технологий для каждого сервиса.
|
|||
|
|
|||
|
### Системы оркестрации
|
|||
|
Системы оркестрации автоматизируют развертывание, масштабирование и управление контейнерами, что значительно упрощает
|
|||
|
разработку и сопровождение. Однако вместе с тем они накладывают определенные требования к участникам команды разработки,
|
|||
|
которым необходимо иметь хотя бы базовые знания об используемой технологии.
|
|||
|
|
|||
|
### Очереди сообщений
|
|||
|
Очереди обработки сообщений позволяют организовать асинхронное взаимодействие между компонентами системы.
|
|||
|
Такой подход важен, если процесс при отправке сообщения не должен блокироваться, а ответ необязательно должен быть
|
|||
|
получен и обработан мгновенно. Сообщения, которые передаются по очередям, могут быть некоторыми событиями или командами,
|
|||
|
на которые могут отреагировать сразу несколько сервисов, подписанных на очередь.
|
|||
|
|
|||
|
### Преимущества и недостатки РС
|
|||
|
К преимуществам РС, как уже было сказано выше, можно отнести масштабируемость, отказоустойчивость, гибкость внедрения новых функциональностей,
|
|||
|
а к недостаткам - сложности отладки возникающих проблем и тестирования,
|
|||
|
возникающие сетевые задержки при прохождении запроса через несколько сервисов.
|
|||
|
|
|||
|
### Параллелизм: за и против
|
|||
|
Параллельные вычисления нужно применять там, где это действительно нужно. Например, при обработке больших данных, при возможности
|
|||
|
разбиения задачи на несколько независимых подзадач.
|
|||
|
Однако в случаях, где важна последовательность операций,
|
|||
|
параллелизм может привести к усложнению логики приложения и ошибкам, а при малом объеме данных для обработки параллелизм может только ухудшить производительность.
|