.. | ||
event_service | ||
session_service | ||
docker-compose.yml | ||
nginx.conf | ||
readme.md |
Задание:
- Создать 2 микросервиса, реализующих CRUD на связанных сущностях.
- Реализовать механизм синхронного обмена сообщениями между микросервисами.
- Реализовать шлюз на основе прозрачного прокси-сервера nginx.
Вариант: Сессии и события
Выполнение
Были написаны два сервиса на языке python:
-
Сервис session_service, хранящий данные о сессиях и реализующий CRUD операции с ними через HTTP запросы.
-
Сервис event_service, хранящий данные о событиях и реализующий CRUD операции с ними через HTTP запросы.
-
Сервисы синхронно сообщены - сервис сессия запрашивает данные у сервиса событий для получения событий сессии.
Для сервисов прописаны файлы Dockerfile, описывающие создание контейнеров:
Для обоих контейнеров выбирается Python 3.9. Оба контейнера проявляют порты, на которых работает приложение: 8081 для событий и 8082 для сессий. В оба контейнера устанавливаются пакеты Flask и requests. Выбирается рабочая директория /work и туда копируются файлы скриптов. Командой запускаются сами скрипты. Общий yaml-файл развёртки был настроен следующим образом:
блок services, где перечислены разворачиваемые сервисы. для каждого сервиса прописан build, где объявляется его папка и докерфайл создания и зависимости. для сервиса nginx прописан порт для отображения вовне.