.. | ||
ConsumerDelay | ||
ConsumerSimple | ||
EmitLog | ||
NewTask | ||
Publisher | ||
Receive | ||
ReceiveLogs | ||
Send | ||
Worker | ||
docker-compose.yaml | ||
image-1.png | ||
image-2.png | ||
image-3.png | ||
image-4.png | ||
image-5.png | ||
image-6.png | ||
image.png | ||
README.md |
Лабораторная работа 4
В рамках данной работы были реализованы несколько проектов, работающих с RabbitMQ.
tutorial
Для каждого урока были созданы консольные проекты
"Hello World!"
Work Queues
![Task 2]!(image-5.png)
Publish/Subscribe
![Task 3]!(image-6.png)
Описание
В качестве предметной области была выбрана система запросов отчета двух видов: отчета и ошибок.
Запуск
Для запуска лабораторной работы необходимо иметь запущенный Docker на устройстве. Необходимо перейти в папку, где располагается данный файл. Далее открыть терминал и ввести команду:
docker compose up -d --build
Порты для RabbitMQ были 8081 (для UI) и 5672.
Анализ
Первоначальный вариант запуска предполагает, что имеется всего 2 потребителя:
- Тратит на обработку сообщения 2-3 секунды
- Тратит на обработку сообщения крайне малое время
Задержка при обработке понижает пропускную способность обработчика, что вызывает переполнение очереди. Это подтверждается скринами.
Теперь запустим несколько обычных обработчиков. Очередь не переполнена постоянно, а периодически, соответственно обработчики вполне справляются с потоком сообщений и увеличение их количества позволит в принципе избавиться от переполнения
![alt text](image-2.png) ![alt text](image-3.png)
Видеодемонстрация
Демонстрация: (https://drive.google.com/file/d/16gJMGbMKSFZ_I5gCzuDekpAqUrhbpFRA/view?usp=sharing) Стоит обратить внимание на то, что настройки docker compose файла не гарантируют верный порядок подъема контейнеров, из-за чего некоторые контейнеры пришлось перезапустить.