# Лабораторная работа №4. ## ПИбд-42 || Исмаилов Ровшан ### Цель лабораторной работы Изучение проектирования приложений при помощи брокера сообщений. ### Задачи №1 и №2: В ходе выполнения данной лабораторной работы был установлен брокер сообщений RabbitMQ. Для изучения его возможностей были освоены первые три урока из RabbitMQ Tutorials на языке программирования Python. - Результат первого урока: ! ! - Результат второго урока: ! ! ! - Итоги третьего урока: ! ! ### Предметная область: В качестве предметной области выбрана тема — интернет-магазин. ### Задача №3: В рамках лабораторной работы по выбранной предметной области были разработаны демонстрационные приложения: Publisher, Consumer_1 и Consumer_2. Результаты их выполнения представлены ниже. - Данные из очереди **first**, запущен один экземпляр **Consumer_1**:  - Данные из очереди **second**, запущен один экземпляр **Consumer_2**:  - Данные из очереди **first**, запущено два экземпляра **Consumer_1**:  - Данные из очереди **first**, запущено три экземпляра **Consumer_1**:  ### Выводы: По представленным данным можно сделать следующие выводы: - **second** практически не заполняется, так как обработка сообщений происходит мгновенно, и они не задерживаются в очереди. - **Consumer_1** тратит 2 секунды на обработку каждого сообщения, что приводит к быстрому заполнению очереди **first_queue**, если запущен только один экземпляр. - Чем больше экземпляров **Consumer_1** запущено, тем медленнее заполняется очередь. Это объясняется тем, что каждый экземпляр обрабатывает сообщения из очереди, и нагрузка распределяется между ними. - С увеличением числа экземпляров можно достичь такого состояния, когда очередь перестанет заполняться, поскольку сообщения будут обрабатываться с той же скоростью, с которой они поступают. ### Видео с демонстрацией работы: https://cloud.mail.ru/public/2B4T/24cuj1Kv9