2.5 KiB
2.5 KiB
Задание
- Создать 2 микросервиса, реализующих CRUD на связанных сущностях.
- Реализовать механизм синхронного обмена сообщениями между микросервисами.
- Реализовать шлюз на основе прозрачного прокси-сервера nginx.
Вариант: сообщения и пользователи
Выполнение
Были написаны два сервиса на языке python с технологией flask:
- Сервис msg_service, хранящий данные о сообщениях и реализующий CRUD операции с ними через HTTP запросы.
- Сервис usr_service, хранящий данные о пользователях и реализующий CRUD операции с ними через HTTP запросы.
Сервисы синхронно сообщены - сервис пользователей запрашивает данные у сервиса сообщений для получения сообщений пользователя.
Для сервисов прописаны файлы Dockerfile, описывающие создание контейнеров:
- Для обоих контейнеров выбирается Python 3.9.
- Оба контейнера проявляют порты, на которых работает приложение: 8081 для сообщений и 8082 для пользователей.
- В оба контейнера устанавливаются пакеты Flask и requests.
- Выбирается рабочая директория /work и туда копируются файлы скриптов.
- Командой запускаются сами скрипты.
Общий yaml-файл развёртки был настроен следующим образом:
- блок services, где перечислены разворачиваемые сервисы.
- для каждого сервиса прописан build, где объявляется его папка и докерфайл создания и зависимости.
- для сервиса nginx прописан порт для отображения вовне.
Результат
Демонстрация работы в видео.
Ссылка на видео
https://drive.google.com/file/d/1gmZsbzMmC34Uidi4u_D3nFyPAG0MuPAf/view?usp=drive_link