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

3.0 KiB
Raw Permalink Blame History

Лабораторная работа №3 - REST API, шлюз и синхронный обмен данными между микросервисами

Задание

Цель:

Изучение принципов проектирования с использованием паттерна шлюза, организации синхронной передачи данных между микросервисами и применения архитектурного стиля RESTful API.

Задачи:

  1. Создание двух микросервисов, которые реализуют операции CRUD для связанных сущностей.
  2. Реализация механизма синхронного обмена данными между микросервисами.
  3. Настройка шлюза на базе Nginx в качестве прозрачного прокси-сервера.

Микросервисы:

  1. hero_service — сервис, который управляет информацией о героях.
  2. item_service — сервис, который обрабатывает данные о предметах, принадлежащих героям.

Связь между микросервисами:

  • Один документ (hero) может иметь множество связанных предметов (items) (соотношение 1 ко многим).

Как запустить проект:

Для запуска приложения необходимо выполнить команду:

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