DAS_2024_1/alkin_ivan_lab_3/README.md
2024-12-12 22:44:53 +04:00

42 lines
2.8 KiB
Markdown
Raw Blame History

This file contains ambiguous Unicode characters

This file contains Unicode characters that might be confused with other characters. If you think that this is intentional, you can safely ignore this warning. Use the Escape button to reveal them.

# Лабораторная работа №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