DAS_2024_1/balakhonov_danila_lab_4/README.md

86 lines
5.0 KiB
Markdown
Raw Blame History

This file contains ambiguous Unicode characters

This file contains Unicode characters that might be confused with other characters. If you think that this is intentional, you can safely ignore this warning. Use the Escape button to reveal them.

# Лабораторная работа номер 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)
Также была разработана программа, которая состоит из издателя и двух потребителей. Разница между двумя потребителями заключается в скорости их обработки. Первый потребитель имеет некоторую задержку, поэтому он обрабатывает полученные данные гораздо дольше, чем второй потребитель. Из-за задержки происходит накапливание сообщений в очереди первого потребителя. Так как второй потребитель не имеет задержек, то и его очередь не будет настолько заметно возрастать. Если запустить несколько первых потребителей, то очередь также накапливается, но она меньше, так как уже два потребителя принимают сообщения.