Лабораторная работа №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, который является веб-сервером и обратным прокси.