.. | ||
bd1 | ||
bd2 | ||
service1 | ||
service2 | ||
.gitignore | ||
docker-compose.yml | ||
img_1.png | ||
img_2.png | ||
img_3.png | ||
img_4.png | ||
img_5.png | ||
img_6.png | ||
img_7.png | ||
img_8.png | ||
img_9.png | ||
img_10.png | ||
img_11.png | ||
img_12.png | ||
img_13.png | ||
img_14.png | ||
img_15.png | ||
img_16.png | ||
img_17.png | ||
img_18.png | ||
img.png | ||
nginx.conf | ||
README.md |
Лабораторная работа №3 - REST API, Gateway и синхронный обмен между микросервисами
Цель: изучение шаблона проектирования gateway, построения синхронного обмена между микросервисами и архитектурного стиля RESTful API.
Задачи:
- Создать 2 микросервиса, реализующих CRUD на связанных сущностях.
- Реализовать механизм синхронного обмена сообщениями между микросервисами.
- Реализовать шлюз на основе прозрачного прокси-сервера nginx.
Разработка двух распределенных приложений
Было решено на первом сервисе(service1) сделать реализацию рабочего(clerc), на втором сервисе(service2) сделать реализацию офиса(office), которая хранит uuid работников. Было решено сделать как принято в микросервисной архитектуре бд на микросервис, поэтому реализовано 2 базы данных на PostgreSQL. Также реализован nginx - proxy сервер на общения сервисов между друг другом, а также для доступа к сервам снаружи через ngnix.
Запуск
Запуск контейнеров производится командой "docker-compose up -d"
Работа программы
- Создание репозиторий service1 и service2 для сервисов, bd1 и bd2 для образов баз данных
- Создание go.mod для подтягивания зависимостей.
- Описание Dockerfile для создания образов для сервисов, одинковые для обоих сервисов:
- Описание Dockerfile для создания образов для бд, одинаковые для обоих:
- Создание файлов server_run.go с логикой работ сервисов.
- Создаем файл nginx.conf с конфигурацией работы nginx:
- Создаем файл docker-compose.yml для описания запуска контейнеров в одной сети:
- Сборка и запуска контейнеров.
- Проверка работы докер сети и контейнеров, все работает стабильно:
- Делаем запросы через insomnia:
- Все запросы работают.
Видео
Видео с разбором лабораторной работы - https://youtu.be/RQCwqW9jwH4