DAS_2024_1/kadyrov_aydar_lab_3/README.md
2024-10-25 01:10:46 +04:00

42 lines
3.0 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` отправляет HTTP-запросы к `item_service` при выполнении определенных операций CRUD. Это позволяет получать актуальную информацию о предметах, связанных с конкретными героями.
### Docker Compose
Конфигурационный файл `docker-compose.yml` представляет собой многоконтейнерное приложение, которое включает в себя три сервиса: `hero_service`, `item_service` и `nginx`. Функция маршрутизации возложена на сервер Nginx, который обрабатывает запросы и перенаправляет их на соответствующие микросервисы.
### Nginx
Конфигурационный файл Nginx определяет настройки веб-сервера и обратного прокси, который управляет входящими запросами и направляет их на соответствующие сервисы.
### ВК ВИДЕО
https://vk.com/video64471408_456239206?list=ln-eG1UX8zXWbZkc651DD