DAS_2024_1/rogashova_ekaterina_lab_4/readme.md
2024-11-15 11:50:03 +04:00

2.9 KiB
Raw Blame History

Лабораторная работа №4

Описание

Задание 1 из туториала: task1.jpg Задание 2 из туториала: task2.jpg Задание 3 из туториала: task3.jpg

Также были созданы файлы Consumer1, Consumer2 и Publisher для обработки событий в сфере онлайн-магазина

Publisher:

• Создает обменник типа fanout с именем online_store_events.

• Каждую секунду генерирует сообщения в формате JSON, описывающие различные события в магазине.

• Отправляет сообщения в обменник.

Consumer 1:

• Создает очередь с именем order_processing_queue.

• Создает привязку к обменнику online_store_events.

• Принимает сообщения из очереди.

• Обрабатывает сообщения, симулируя обработку заказа (использует time.sleep(2)).

• Выводит в консоль информацию о полученном сообщении.

Consumer 2:

• Создает очередь с именем product_recommendation_queue.

• Создает привязку к обменнику online_store_events.

• Принимает сообщения из очереди.

• Обрабатывает сообщения мгновенно, симулируя создание рекомендаций (использует print(f"Обработка рекомендации: {message}")).

• Выводит в консоль информацию о полученном сообщении.

Вывод работы

Для того, чтобы сделать вывод, необходимо подождать некоторое время, тогда можно будет увидеть, что количество сообщений в order_processing_queue будет больше, чем в product_recommendation_queue, так как во второй очереди происходит мгновенная обработка сообщений. Если запустить несколько Consumer-1, то количество сообщений в order_processing_queue снизится, так как несколько экземпляров первого consumer будут работать параллельно, и RabbitMQ будет распределять входящие сообщения между ними (это называется "разделение нагрузки"). Consumer-1.jpg Consumer-3.jpg

Видео

Работоспособность представлена на видео.