DAS_2024_1/presnyakova_victoria_lab_4/readme.md
2024-11-01 21:02:03 +04:00

3.5 KiB
Raw Blame History

Лабораторная работа №4 - Работа с брокером сообщений

Lesson 1: img.png img.png Lesson 2: img.png img.png Lesson 3: img.png img.png

Задачи

Необходимо выбрать предметную область и разработать следующие приложения:

  1. Publisher. Программа, которая создаёт один exchange с типом fanout. Программа должна раз в секунду генерировать сообщения в журнал событий согласно вашей предметной области. Например, событие "пришёл заказ" или "сообщение от пользователя" или "необходимо создать отчёт".
  2. Consumer 1. Программа, которая создаёт под себя отдельную не анонимную (!) очередь (queue) (то есть имя queue НЕ пустая строка), создаёт binding на exchange и начинает принимать сообщения (consume). Программа должна обрабатывать сообщения 2-3 секунды. Можно реализовать через обычный Thread.Sleep (для C#).
  3. Consumer 2. Аналогично Consumer 1, только сообщения необходимо обрабатывать моментально. Только имя очереди должно отличаться от Consumer 1.

Далее необходимо собрать и запустить приложения одновременно по одному экземпляру.

Запуск

Проект запускается в ide просто по нажатию у питон файла на функцию мейн. Нужно последовательно запустить функцию мейн у файлов app.py, consumer1.py, consumer2.py. Очередь сообщений запускается такой командой docker run -it --rm --name rabbitmq -p 5672:5672 -p 15672:15672 rabbitmq:3-management

Описание работы:

Развернули два приложения Сервисы используем из предыдущей работы Предметная область - Скрипты и дефекты

  1. Consumer 1 - Скрипт 1:
  2. Consumer 2 - Скрипт 2:

Оба скрипта обрабатывают дефекты.

Flask-приложение с RabbitMQ, использующего библиотеку pika для publisher и для consumers. Надо обязательно вызвать метод publish, иначе обработка дефектов не начнется. Приложение Flask (app.py), для источника дефектов (publisher) и двух скриптов-потребителей (consumer1.py и consumer2.py). Запускаем приложение Flask и обоих потребителей запускаем отдельно в разных терминалах. Consumer ы будут прослушивать сообщения, опубликованные publisher ом.

img.png

Ссылка на видео

https://drive.google.com/file/d/1P8kKSZAre24I04DXL1WqkPtdL6RnDOPA/view?usp=sharing