DAS_2024_1/nikolaeva_yana_lab_3/README.md

43 lines
3.0 KiB
Markdown
Raw Normal View History

2024-12-10 20:14:57 +04:00
# Лабораторная работа №3 - REST API, шлюз и синхронный обмен данными между микросервисами
## Задание
### Цель:
Изучение принципов проектирования с использованием паттерна шлюза, организации синхронной передачи данных между микросервисами и применения архитектурного стиля RESTful API.
### Задачи:
1. Создание двух микросервисов, которые реализуют операции CRUD для связанных сущностей.
2. Реализация механизма синхронного обмена данными между микросервисами.
3. Настройка шлюза на базе Nginx в качестве прозрачного прокси-сервера.
### Микросервисы:
1. **service_books** — сервис, который обрабатывает данные о книгах, связанных с абонементами.
2. **service_subscription** — сервис, который управляет информацией об абонементах.
### Связь между микросервисами:
Один абонемент может быть связан с несколькими книгами (отношение 1 ко многим).
## Как запустить проект:
Для запуска приложения необходимо выполнить команду:
docker-compose up
## Описание работы:
Для разработки микросервисов был выбран язык программирования Python.
### Синхронный обмен данными
Сервис `service_books` отправляет HTTP-запросы к `service_subscription` при выполнении определенных операций CRUD. Это позволяет получать актуальную информацию о предметах, связанных с конкретными абонентами.
### Docker Compose
Конфигурационный файл `docker-compose.yml` представляет собой многоконтейнерное приложение, которое включает в себя три сервиса: `service_subscription`, `service_books` и `nginx`. Функция маршрутизации возложена на сервер Nginx, который обрабатывает запросы и перенаправляет их на соответствующие микросервисы.
### Nginx
Конфигурационный файл Nginx определяет настройки веб-сервера и обратного прокси, который управляет входящими запросами и направляет их на соответствующие сервисы.
### ВИДЕО
https://cloud.mail.ru/public/tior/GJxyvy8Rp