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
|