42 lines
2.8 KiB
Markdown
42 lines
2.8 KiB
Markdown
# Лабораторная работа №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 |