31 lines
2.3 KiB
Markdown
31 lines
2.3 KiB
Markdown
|
# Задание:
|
|||
|
|
|||
|
- Создать 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 прописан порт для отображения вовне.
|
|||
|
|
|||
|
## Видео https://drive.google.com/file/d/1my-e51bAoxUaMHKpGJmd9ZXSR5GnmORS/view?usp=sharing
|