# Лабораторная работа номер 4 > Здравствуйте меня зовут Балахонов Данила группа ПИбд-42 > > *— Балахонов Данила ПИбд-42* Видео лабораторной работы номер 4 доступно по этой [ссылке](https://drive.google.com/file/d/1OZJ67OmOnQCAAb2VVg4OV7qMlZ1Y_HsH/view?usp=sharing). ## Как запустить лабораторную работу номер 4? ### Необходимые компоненты для запуска лабораторной работы номер 4 > Здесь рассказана установка необходимых компонентов для запуска лабораторной работы номер 3 под дистрибутив GNU/Linux **Ubuntu**. Для запуска лабораторной работы номер 4 необходимы такие компоненты: - Git - Docker - Docker compose Чтобы установить **Git**, необходимо ввести данные команды в командную строку: ``` bash sudo apt-get update sudo apt-get install git ``` Чтобы установить **Docker** и **Docker compose**, стоит ввести такие команды: ``` bash # Настройка репозитория Docker sudo apt-get update sudo apt-get install ca-certificates curl sudo install -m 0755 -d /etc/apt/keyrings sudo curl -fsSL https://download.docker.com/linux/ubuntu/gpg -o /etc/apt/keyrings/docker.asc sudo chmod a+r /etc/apt/keyrings/docker.asc echo \ "deb [arch=$(dpkg --print-architecture) signed-by=/etc/apt/keyrings/docker.asc] https://download.docker.com/linux/ubuntu \ $(. /etc/os-release && echo "$VERSION_CODENAME") stable" | \ sudo tee /etc/apt/sources.list.d/docker.list > /dev/null sudo apt-get update # Установка Docker и его компонентов sudo apt-get install docker-ce docker-ce-cli containerd.io docker-buildx-plugin docker-compose-plugin ``` Помимо Docker необходимо установить `python3`. ``` bash sudo apt install python3 ``` ### Запуск лабораторной работы номер 4 Для запуска лабораторной работы номер 4 необходимо **склонировать** репозиторий в любую папку и **перейти на ветку** balakhonov_danila_lab_4. Далее в папке с `docker-compose.yaml` нужно вызвать такую команду: ``` bash sudo docker compose up -d ``` Таким образом контейнер с редисом будет запущен в фоне. Чтобы запустить программу, нужно вызывать три разных файла: - Файл *издателя* ``` bash python3 program/publisher.py ``` - Файл *первого потребителя* с задержкой ``` bash python3 program/consumer_1.py ``` - Файл *второго потребителя* ``` bash python3 program/consumer_2.py ``` ## Какие технологии были использованы? Для выполнения лабораторной работы номер 4 были использованы такие технологии, как: - Docker compose - Git - Python 3 - Pika - RabbitMQ ## Что делает лабораторная работа номер 4? Суть лабораторной работы номер 4 заключается в получении навыков работы с брокером сообщений. ## Вывод лабораторной работы номер 4 Были пройдены туториалы по ознакомлению с RabbitMQ: ### 1 туториал ![1 туториал](imgs/tutor1.png) ### 2 туториал ![2 туториал](imgs/tutor2.png) ### 3 туториал ![3 туториал](imgs/tutor3.png) Также была разработана программа, которая состоит из издателя и двух потребителей. Разница между двумя потребителями заключается в скорости их обработки. Первый потребитель имеет некоторую задержку, поэтому он обрабатывает полученные данные гораздо дольше, чем второй потребитель. Из-за задержки происходит накапливание сообщений в очереди первого потребителя. Так как второй потребитель не имеет задержек, то и его очередь не будет настолько заметно возрастать. Если запустить несколько первых потребителей, то очередь также накапливается, но она меньше, так как уже два потребителя принимают сообщения.