30 lines
2.3 KiB
Markdown
30 lines
2.3 KiB
Markdown
|
## Задание
|
|||
|
|
|||
|
1. Создать 2 микросервиса, реализующих CRUD на связанных сущностях.
|
|||
|
2. Реализовать механизм синхронного обмена сообщениями между микросервисами.
|
|||
|
3. Реализовать шлюз на основе прозрачного прокси-сервера nginx.
|
|||
|
|
|||
|
Вариант: Продукты и история цен на них
|
|||
|
|
|||
|
## Выполнение
|
|||
|
Были написаны два сервиса на языке java, фреймворк Spring:
|
|||
|
* Сервис price_module, хранящий данные о продуктах и реализующий CRUD операции с ними через HTTP запросы.
|
|||
|
* Сервис price_history_module, хранящий данные об истории цен на продукты и реализующий CRUD операции с ними через HTTP запросы.
|
|||
|
|
|||
|
Сервисы синхронно сообщены - сервис истории цен при создании записи с ценой, посылает сообщение продукту на связывание.
|
|||
|
|
|||
|
Для сервисов прописаны файлы Dockerfile, описывающие создание контейнеров:
|
|||
|
* Оба контейнера проявляют порты, на которых работает приложение: 8080 для продуктов и 8081 для истории цен.
|
|||
|
* Выбирается рабочая директория /app и туда копируются файлы скриптов.
|
|||
|
* Командой запускаются сами скрипты.
|
|||
|
|
|||
|
Общий yaml-файл развёртки был настроен следующим образом:
|
|||
|
* блок services, где перечислены разворачиваемые сервисы.
|
|||
|
* для каждого сервиса прописан build, где объявляется его папка и докерфайл создания и зависимости.
|
|||
|
* для сервиса nginx прописан порт для отображения вовне.
|
|||
|
|
|||
|
## Результат
|
|||
|
Демонстрация работы в видео.
|
|||
|
|
|||
|
## Ссылка на видео
|
|||
|
https://drive.google.com/file/d/1tH7FwSu_VWJ5SKJBXm3zPKbxTAKVUFxb/view?usp=sharing
|