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