DAS_2023_1/martysheva_tamara_lab_4/README.md

46 lines
2.3 KiB
Markdown
Raw Normal View History

2023-12-17 01:31:56 +04:00
# Лабораторная работа №4 - Работа с брокером сообщений
**Цель**: изучение проектирования приложений при помощи брокера сообщений.
**Задачи**:
* Установить брокер сообщений RabbitMQ.
* Пройти уроки 1, 2 и 3 из RabbitMQ Tutorials на любом языке программирования.
* Продемонстрировать работу брокера сообщений.
***
## *Ход работы:*
### RabbitMQ:
В DockerHub ищем и пуллим образ RabbitMQ, далее запускаем его:
![](images/pulling.jpg "")
Указываем имя для контейнера и проброс необходимых портов:
![](images/run.jpg "")
### Работа брокера
#### Publisher
Программа, которая создаёт один exchange с типом fanout. Программа должна раз в секунду генерировать сообщения в журнал событий согласно вашей предметной области. Например, событие "пришёл заказ" или "сообщение от пользователя" или "необходимо создать отчёт".
Отправляет пользователям сообщения о том, что необходимо начать тренировку:
![](images/publisher.jpg "")
#### Consumer1 - с обработкой
Consumer 1. Программа, которая создаёт под себя отдельную не анонимную (!) очередь (queue) (то есть имя queue НЕ пустая строка), создаёт binding на exchange и начинает принимать сообщения (consume). Программа должна обрабатывать сообщения 2-3 секунды.
![](images/consumer1.jpg "")
#### Consumer2 - без обработки
Consumer 2. Аналогично Consumer 1, только сообщения необходимо обрабатывать моментально. Только имя очереди должно отличаться от Consumer 1.
![](images/consumer2.jpg "")
### Отчеты
![](images/overview.jpg "")
![](images/queue1.jpg "")
![](images/queue2.jpg "")