.. | ||
Consumer1/src/main/java/org/example | ||
Consumer2/src/main/java/org/example | ||
Publisher/src/main/java/org/example | ||
console_consumer1.png | ||
console_consumer2.png | ||
console_publisher.png | ||
exchange.png | ||
main_report.png | ||
queue1.png | ||
queue2.png | ||
README.md |
Лабораторная работа №4
ПИбд-42 Машкова Маргарита
Задание
Необходимо выбрать предметную область и разработать следующие приложения:
- Publisher. Программа, которая создаёт один exchange с типом fanout. Программа должна раз в секунду генерировать сообщения в журнал событий согласно вашей предметной области. Например, событие "пришёл заказ" или "сообщение от пользователя" или "необходимо создать отчёт".
- Consumer 1. Программа, которая создаёт под себя отдельную не анонимную (!) очередь (queue) (то есть имя queue НЕ пустая строка), создаёт binding на exchange и начинает принимать сообщения (consume). Программа должна обрабатывать сообщения 2-3 секунды. Можно реализовать через обычный Thread.Sleep.
- Consumer 2. Аналогично Consumer 1, только сообщения необходимо обрабатывать моментально. Только имя очереди должно отличаться от Consumer 1.
Запуск программы
Запустить программу Consumer1
Запустить программу Consumer2
Запустить программу Publisher
Описание работы программы
Publisher каждую секунду отправляет сообщение Пришел заказ №
. Consumer1 и Consumer2 получают сообщения, обрабатывают его
Consumer1 в течении 4 секунд, Consumer2 в течении 6 секунд.
Тесты
Вывод отправителя:
Вывод получателя 1:
Вывод получателя 2:
Отчеты из RabbitMQ Management UI:
Очередь Consumer1:
Очередь Consumer2:
Exchange:
Ссылка на видео: https://youtu.be/9gr2HpZrYyk