.. | ||
lesson1 | ||
lesson2 | ||
lesson3 | ||
Consumer_1.py | ||
Consumer_2.py | ||
Publisher.py | ||
README.md |
Лабораторная работа №4.
ПИбд-42 || Исмаилов Ровшан
Цель лабораторной работы
Изучение проектирования приложений при помощи брокера сообщений.
Задачи №1 и №2:
В ходе выполнения данной лабораторной работы был установлен брокер сообщений RabbitMQ. Для изучения его возможностей были освоены первые три урока из RabbitMQ Tutorials на языке программирования Python.
Предметная область:
В качестве предметной области выбрана тема — интернет-магазин.
Задача №3:
В рамках лабораторной работы по выбранной предметной области были разработаны демонстрационные приложения: Publisher, Consumer_1 и Consumer_2. Результаты их выполнения представлены ниже.
-
Данные из очереди second, запущен один экземпляр Consumer_2:
-
Данные из очереди first, запущено два экземпляра Consumer_1:
-
Данные из очереди first, запущено три экземпляра Consumer_1:
Выводы:
По представленным данным можно сделать следующие выводы:
- second практически не заполняется, так как обработка сообщений происходит мгновенно, и они не задерживаются в очереди.
- Consumer_1 тратит 2 секунды на обработку каждого сообщения, что приводит к быстрому заполнению очереди first_queue, если запущен только один экземпляр.
- Чем больше экземпляров Consumer_1 запущено, тем медленнее заполняется очередь. Это объясняется тем, что каждый экземпляр обрабатывает сообщения из очереди, и нагрузка распределяется между ними.
- С увеличением числа экземпляров можно достичь такого состояния, когда очередь перестанет заполняться, поскольку сообщения будут обрабатываться с той же скоростью, с которой они поступают.