DAS_2024_1/kurushina_ksenia_lab_3/README.md
2024-12-08 22:45:52 +04:00

45 lines
2.9 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.
Задачи:
Создание двух микросервисов, которые реализуют операции CRUD для связанных сущностей.
Реализация механизма синхронного обмена данными между микросервисами.
Настройка шлюза на базе Nginx в качестве прозрачного прокси-сервера.
Микросервисы:
book_service — сервис, который управляет книгами.
shelf_service — сервис, который обрабатывает данные о полках.
Связь между микросервисами:
Один документ (book) может иметь множество связанных предметов (shelf) (соотношение 1 ко многим).
Как запустить проект:
Для запуска приложения необходимо выполнить команду:
docker-compose up
Описание работы:
Для разработки микросервисов был выбран язык программирования Python.
Синхронный обмен данными
Сервис book_service отправляет HTTP-запросы к shelf_service
при выполнении определенных операций CRUD. Это позволяет получать актуальную информацию о книгах,
связанных с конкретными полками.
Docker Compose
Конфигурационный файл docker-compose.yml
представляет собой многоконтейнерное приложение, которое включает в себя три сервиса:
book_service, shelf_service и nginx. Функция маршрутизации возложена на сервер Nginx,
который обрабатывает запросы и перенаправляет их на соответствующие микросервисы.
Nginx
Конфигурационный файл Nginx определяет настройки веб-сервера и
обратного прокси, который управляет входящими запросами
и направляет их на соответствующие сервисы.
ВИДЕО
https://cloud.mail.ru/public/Aijk/T8myacqz5