DAS_2024_1/vasina_ekaterina_lab_3/README.md

3.1 KiB
Raw Blame History

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

Задание

Цель

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

Задачи

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

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

  1. user_service — сервис, который управляет информацией о пользователях.
  2. order_service — сервис, который обрабатывает данные о заказах пользователей.

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

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

Структура проекта

lab_3/
|-- nginx/
|   |-- nginx.conf
|-- order_service/
|   |-- Dockerfile
|   |-- main.py
|   |-- requirements.txt
|-- user_service/
|   |-- Dockerfile
|   |-- main.py
|   |-- requirements.txt
|-- docker-compose.yml

Описание работы:

Для разработки микросервисов был выбран язык программирования Python.

Синхронный обмен данными

Сервис user_service отправляет HTTP-запросы к order_service при выполнении определенных операций CRUD. Это позволяет получать актуальную информацию о предметах, связанных с конкретными героями.

Docker Compose

Конфигурационный файл docker-compose.yml представляет собой многоконтейнерное приложение, которое включает в себя три сервиса: user_service, order_service и nginx. Функция маршрутизации возложена на сервер Nginx, который обрабатывает запросы и перенаправляет их на соответствующие микросервисы.

Nginx

Конфигурационный файл Nginx определяет настройки веб-сервера и обратного прокси, который управляет входящими запросами и направляет их на соответствующие сервисы.

Видеозапись работы программы

https://vkvideo.ru/video174596752_456239396