DAS_2023_1/martysheva_tamara_lab_4/README.md

46 lines
2.3 KiB
Markdown
Raw Blame History

This file contains ambiguous Unicode characters

This file contains Unicode characters that might be confused with other characters. If you think that this is intentional, you can safely ignore this warning. Use the Escape button to reveal them.

# Лабораторная работа №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 "")