36 lines
2.6 KiB
Markdown
36 lines
2.6 KiB
Markdown
|
|
|||
|
# Лабораторная работа №3 - REST API, шлюз и синхронный обмен данными между микросервисами
|
|||
|
|
|||
|
## Задание
|
|||
|
|
|||
|
1. Создание двух микросервисов, которые реализуют операции CRUD для связанных сущностей.
|
|||
|
2. Реализация механизма синхронного обмена данными между микросервисами.
|
|||
|
3. Настройка шлюза на базе Nginx в качестве прозрачного прокси-сервера.
|
|||
|
|
|||
|
### Микросервисы:
|
|||
|
1. **theme_service** — сервис, который управляет информацией о темах.
|
|||
|
2. **book_service** — сервис, который обрабатывает данные о книгах, принадлежащих темам.
|
|||
|
|
|||
|
### Связь между микросервисами:
|
|||
|
- Один документ (theme) может иметь множество связанных предметов (book) (соотношение 1 ко многим).
|
|||
|
|
|||
|
## Как запустить проект:
|
|||
|
Для запуска приложения необходимо выполнить команду:
|
|||
|
`docker-compose up`
|
|||
|
|
|||
|
## Описание работы:
|
|||
|
|
|||
|
Для разработки микросервисов был выбран язык программирования Python.
|
|||
|
|
|||
|
### Синхронный обмен данными
|
|||
|
Сервис `theme_service` отправляет HTTP-запросы к `book_service` при выполнении определенных операций CRUD. Это позволяет получать актуальную информацию о книгах, связанных с конкретными темами.
|
|||
|
|
|||
|
### Docker Compose
|
|||
|
Конфигурационный файл `docker-compose.yml` представляет собой многоконтейнерное приложение, которое включает в себя три сервиса: `theme_service`, `book_service` и `nginx`. Функция маршрутизации возложена на сервер Nginx, который обрабатывает запросы и перенаправляет их на соответствующие микросервисы.
|
|||
|
|
|||
|
### Nginx
|
|||
|
Конфигурационный файл Nginx определяет настройки веб-сервера и обратного прокси, который управляет входящими запросами и направляет их на соответствующие сервисы.
|
|||
|
|
|||
|
## ВИДЕО
|
|||
|
https://disk.yandex.ru/i/cmY6ZnlH938Mpw
|