DAS_2024_1/kalyshev_yan_lab_3/README.md

49 lines
3.3 KiB
Markdown
Raw Normal View History

2024-10-30 13:57:42 +04:00
# Отчет. Лабораторная работа 3
## Описание
2024-11-02 20:14:47 +04:00
В рамках лабораторной работы № 3 были реализованы два сервиса (Java + Spring), предоставляющие CRUD-операции для сущностей.
2024-10-30 13:57:42 +04:00
Модель данных следующая:
2024-11-02 20:14:47 +04:00
Сущность "Помещение" (сервис room):
2024-10-30 13:57:42 +04:00
2024-11-02 20:14:47 +04:00
1. идентификатор помещения
2. название
3. адрес
2024-10-30 13:57:42 +04:00
2024-11-02 20:14:47 +04:00
Сущность "Компьютер" (сервис computer):
2024-10-30 13:57:42 +04:00
2024-11-02 20:14:47 +04:00
1. идентификатор компьютера
2. название
3. описание
4. идентификатор помещения
2024-10-30 13:57:42 +04:00
2024-11-02 20:14:47 +04:00
Компьютер с помещением связан как "один ко многим".
Каждый из сервисов имеет API с пятью эндпоинтами. При этом в сервисе computer при запросе компьютера по id происходит дополнительный запрос в сервис room для получения информации о помещении, связанным с компьютером.
Происходит это взаимодействие с помощью библиотеки OpenFeign, которая использует HttpClient.
В качестве хранилища данных использовалась СУБД Postgres. У каждого сервиса своя база данных в поднятой СУБД.
Для создания схемы БД была использована библиотека Flyway, применившая написанные миграции при старте приложения.
Запросы к сервисам проксируют шлюз на основе Nginx. Для этого перед запуском nginx был описан конфигурационный файл nginx.conf,
в котором были указаны прослушиваемый порт и название сервера (в блоке server), маршруты до микросервисов и параметры проксирования (в блоке location).
2024-10-30 13:57:42 +04:00
Таким образом, с помощью Docker Compose были подняты сервисы:
2024-11-02 20:14:47 +04:00
- room
- computer
2024-10-30 13:57:42 +04:00
- postgres
- nginx
2024-11-02 20:14:47 +04:00
2024-10-30 13:57:42 +04:00
## Как запустить
2024-11-02 20:14:47 +04:00
2024-10-30 13:57:42 +04:00
Для того, чтобы запустить сервисы, необходимо выполнить следующие действия:
2024-11-02 20:14:47 +04:00
Установите и запустите Docker Engine или Docker Desktop.
Перейдите в папку, содержащую файл docker-compose.yml через консоль.
Выполните команду:
`docker compose up --build`
Далее можно осуществлять запросы к сервисам по адресу http://localhost/{location} , где часть пути location меняется в зависимости от сервиса и запроса.
2024-10-30 13:57:42 +04:00
## Видео-отчет
2024-11-02 20:14:47 +04:00
Работоспособность лабораторной работы можно оценить в следующем видео: https://zyzf.space/s/iWxb6b4EFQjPias.
Демонстрация взаимодействия с системой производится с помощью утилиты httpie.