forked from Alexey/DAS_2024_1
64 lines
2.4 KiB
Markdown
64 lines
2.4 KiB
Markdown
|
# Лабораторная работа №3 - REST API, Gateway и синхронный обмен между микросервисами
|
|||
|
|
|||
|
## Задание
|
|||
|
|
|||
|
#### Цель:
|
|||
|
|
|||
|
Изучение шаблона проектирования gateway, построения синхронного обмена между микросервисами и архитектурного стиля RESTful API.
|
|||
|
|
|||
|
#### Задачи:
|
|||
|
|
|||
|
* Создать 2 микросервиса, реализующих CRUD на связанных сущностях.
|
|||
|
* Реализовать механизм синхронного обмена сообщениями между микросервисами.
|
|||
|
* Реализовать шлюз на основе прозрачного прокси-сервера nginx.
|
|||
|
|
|||
|
### Сервисы:
|
|||
|
1. ```product_server``` - сервис, отвечающий за продукты
|
|||
|
|
|||
|
2. ```document_server``` - сервис, отвечающий за документы, которые содержат в себе продукты
|
|||
|
|
|||
|
#### Связь между сервисами:
|
|||
|
```document (single) <- product (many)```
|
|||
|
|
|||
|
## Как запустить программу:
|
|||
|
```
|
|||
|
docker compose up
|
|||
|
```
|
|||
|
|
|||
|
## Файловая иерархия
|
|||
|
|
|||
|
```
|
|||
|
Лаба 3/
|
|||
|
|-- document_server/
|
|||
|
| |-- Dockerfile
|
|||
|
| |-- document_server.py
|
|||
|
|-- product_server/
|
|||
|
| |-- Dockerfile
|
|||
|
| |-- product_server.py
|
|||
|
|-- nginx.conf
|
|||
|
|-- docker-compose.yml
|
|||
|
|-- requirements.txt
|
|||
|
|-- Test_commands.txt
|
|||
|
```
|
|||
|
|
|||
|
## Описание работы:
|
|||
|
|
|||
|
Для разработки приложений был выбран язык программирования - ```python```
|
|||
|
|
|||
|
#### Синхронный обмен сообщениями
|
|||
|
`product_server` будет отправлять http-запрос на `document_server` при определенных crud операциях.
|
|||
|
|
|||
|
### Docker-compose
|
|||
|
|
|||
|
|
|||
|
Конфигурационный файл ```docker-сompose``` представляет собой многоконтейнерное приложение с тремя сервисами: ```product_server```, ```document_server``` и ```nginx```. Обязанности маршрутизатора возложены на сервер Nginx
|
|||
|
|
|||
|
|
|||
|
### Nginx
|
|||
|
|
|||
|
|
|||
|
Этот файл представляет собой конфигурацию для ```Nginx```, который является веб-сервером и обратным прокси.
|
|||
|
|
|||
|
|
|||
|
# ВК
|
|||
|
https://vk.com/video256017065_456239873
|