DAS_2024_1/alkin_ivan_lab_3/README.md

42 lines
2.8 KiB
Markdown
Raw Normal View History

2024-12-12 22:44:53 +04:00
# Лабораторная работа №3: REST API, шлюз и синхронный обмен данными между микросервисами
## Задание
### Цель
Изучение принципов проектирования на основе паттерна шлюза, организации синхронного взаимодействия микросервисов и использования RESTful API.
### Основные задачи
1. Разработка двух микросервисов с поддержкой CRUD-операций для связанных сущностей.
2. Организация синхронного обмена данными между микросервисами.
3. Настройка шлюза на базе Nginx, выступающего в роли прозрачного прокси-сервера.
### Микросервисы
1. **hero_service** — микросервис для управления информацией о героях.
2. **item_service** — микросервис для обработки данных о предметах, принадлежащих героям.
### Связь между микросервисами
- Один герой (**hero**) может иметь множество связанных предметов (**items**) (соотношение 1:многие).
## Инструкция по запуску
Для запуска проекта выполните команду:
```bash
docker-compose up
```
## Описание работы
### Разработка микросервисов
Микросервисы разработаны с использованием языка программирования Python.
### Синхронное взаимодействие
`hero_service` обращается к `item_service` через HTTP-запросы для выполнения операций CRUD. Это позволяет получать актуальные данные о предметах, связанных с героями.
### Docker Compose
Файл `docker-compose.yml` описывает многоконтейнерное приложение, включающее три сервиса: `hero_service`, `item_service` и `nginx`. Nginx выполняет маршрутизацию запросов между сервисами.
### Nginx
Конфигурация Nginx задает параметры веб-сервера и обратного прокси, который принимает входящие запросы и направляет их к соответствующим микросервисам.
### Видеоматериал
Подробнее ознакомиться с проектом можно в видео:
https://vkvideo.ru/video150882239_456240342