# Лабораторная работа 4
В рамках данной работы были реализованы несколько проектов, работающих с RabbitMQ.
## tutorial
Для каждого урока были созданы консольные проекты
### "Hello World!"

### Work Queues

### Publish/Subscribe

## Описание
В качестве предметной области была выбрана система запросов отчета двух видов: отчета и ошибок.
## Запуск
Для запуска лабораторной работы необходимо иметь запущенный Docker на устройстве.
Необходимо перейти в папку, где располагается данный файл. Далее открыть терминал и ввести команду:
```
docker compose up -d --build
```
Порты для RabbitMQ были 8081 (для UI) и 5672.
## Анализ
Первоначальный вариант запуска предполагает, что имеется всего 2 потребителя:
1. Тратит на обработку сообщения 2-3 секунды
2. Тратит на обработку сообщения крайне малое время
Задержка при обработке понижает пропускную способность обработчика, что вызывает переполнение очереди. Это подтверждается скринами.


Теперь запустим несколько обычных обработчиков. Очередь не переполнена постоянно, а периодически, соответственно обработчики вполне справляются с потоком сообщений и увеличение их количества позволит в принципе избавиться от переполнения


## Видеодемонстрация
Демонстрация: (https://drive.google.com/file/d/16gJMGbMKSFZ_I5gCzuDekpAqUrhbpFRA/view?usp=sharing) Стоит обратить внимание на то, что настройки docker compose файла не гарантируют верный порядок подъема контейнеров, из-за чего некоторые контейнеры пришлось перезапустить.