forked from Alexey/DAS_2024_1
40 lines
2.6 KiB
Markdown
40 lines
2.6 KiB
Markdown
|
# Лабораторная работа 4
|
|||
|
В рамках данной работы были реализованы несколько проектов, работающих с RabbitMQ.
|
|||
|
## tutorial
|
|||
|
Для каждого урока были созданы консольные проекты
|
|||
|
### "Hello World!"
|
|||
|
![Task 1](image-4.png)
|
|||
|
### 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 потребителя:
|
|||
|
1. Тратит на обработку сообщения 2-3 секунды
|
|||
|
2. Тратит на обработку сообщения крайне малое время
|
|||
|
Задержка при обработке понижает пропускную способность обработчика, что вызывает переполнение очереди. Это подтверждается скринами.
|
|||
|
<br/>
|
|||
|
![alt text](image.png)
|
|||
|
<br/>
|
|||
|
![alt text](image-1.png)
|
|||
|
<br/>
|
|||
|
Теперь запустим несколько обычных обработчиков. Очередь не переполнена постоянно, а периодически, соответственно обработчики вполне справляются с потоком сообщений и увеличение их количества позволит в принципе избавиться от переполнения
|
|||
|
|
|||
|
<br/>
|
|||
|
![alt text](image-2.png)
|
|||
|
![alt text](image-3.png)
|
|||
|
|
|||
|
## Видеодемонстрация
|
|||
|
Демонстрация: (https://drive.google.com/file/d/16gJMGbMKSFZ_I5gCzuDekpAqUrhbpFRA/view?usp=sharing) Стоит обратить внимание на то, что настройки docker compose файла не гарантируют верный порядок подъема контейнеров, из-за чего некоторые контейнеры пришлось перезапустить.
|
|||
|
|
|||
|
|