DAS_2024_1/balakhonov_danila_lab_4/README.md

86 lines
5.0 KiB
Markdown
Raw Normal View History

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