# Лабораторная работа №4 - Работа с брокером сообщений ## ПИбд-42 || Карамушко Максим ### Цель лабораторной работы Изучение передачи сообщений между сервисами с помощью брокера RabbitMQ ### Описание задач 1-2: В данной лабораторной был установлен RabbitMQ. После этого было пройдено 3 первых урока из RabbitMQ tutorials. - Итоги первого урока: ![Урок 1](./results/lesson1.png) - Итоги второго урока: ![Урок 2](./results/lesson2.png) - Итоги третьего урока: ![Урок 3](./results/lesson3.png) ### Предметная область: В качестве предметной области я выбрал магазин, в который приходят клиенты. ### Описание задачи 3: Для демонстрации было были разработаны следующие сервисы: Publisher: генерирующий сообщения Consumer1: обрабатывающий сообщения с задержкой Consumer2: обрабатывающий сообщения без задержки - Данные по очереди second-client-queue, с одним запущенным экземпляром Consumer2: ![изображение 1](./results/second_queue.png) - Данные по очереди first-client-queue, с одним запущенным экземпляром Consumer1: ![изображение 2](./results/1-consumers.png) - Данные по очереди first-client-queue, с двумя запущенными экземплярами Consumer1: ![изображение 3](./results/2-consumers.png) - Данные по очереди first-client-queue, с тремя запущенными экземплярами Consumer1: ![изображение 4](./results/3-consumers.png) ### Выводы: По этим данным можно заметить, что вторая очередь вообще не заполняется, так как обрабатывает сообщения мгновенно. Первая очередь с одним запущенным экземпляром Consumer1, заполняется быстро. По мере увеличения количества запускаемых экземпляров Consumer1 очередь заполняется все медленнее и при трех запущенных экземплярах очередь перестает расти. ### Видео с демонстрацией работы: https://disk.yandex.ru/i/EEYPmrVKAczQlg