This commit is contained in:
Zyzf 2024-11-02 20:14:47 +04:00
parent e3390d53dd
commit a02eb5e9d9

View File

@ -1,58 +1,48 @@
# Отчет. Лабораторная работа 3 # Отчет. Лабораторная работа 3
## Описание ## Описание
В рамках лабораторной работы № 3 были реализованы два сервиса (Java + Spring), осуществляющие CRUD-операции над сущностями.
В рамках лабораторной работы № 3 были реализованы два сервиса (Java + Spring), предоставляющие CRUD-операции для сущностей.
Модель данных следующая: Модель данных следующая:
Сущность "Компания" (сервис company) Сущность "Помещение" (сервис room):
- идентификатор компании
- название
- адрес
Сущность "Вакансия" (сервис vacancy) 1. идентификатор помещения
- идентификатор вакансии 2. название
- название 3. адрес
- описание
- нижняя граница зарплаты
- верхняя граница зарплаты
- идентификатор компании
Компания с вакансией связана как "один ко многим". Сущность "Компьютер" (сервис computer):
Каждый из сервисов имеет API с пятью эндпоинтами. При этом в сервисе vacancy при запросе вакансии по id происходит 1. идентификатор компьютера
дополнительный запрос в сервис company для получения информации по компании, связанной с вакансией. 2. название
Происходит это взаимодействие с помощью библиотеки OpenFeign, которая "под капотом" использует HttpClient. 3. описание
4. идентификатор помещения
В качестве хранилища данных использовалась СУБД Postgres. У каждого сервиса своя база данных в поднятой СУБД.
Для создания схемы БД была использована библиотека Flyway, которая применила написанные миграции при старте приложения.
Запросы к сервисам проксирует шлюз на основе Nginx. Для этого перед запуском nginx был описан конфигурационный файл nginx.conf,
в котором описан прослушиваемый порт и название сервера (в блоке server), маршруты до микросервисов и параметры проксирования (в блоке location).
Компьютер с помещением связан как "один ко многим".
Каждый из сервисов имеет API с пятью эндпоинтами. При этом в сервисе computer при запросе компьютера по id происходит дополнительный запрос в сервис room для получения информации о помещении, связанным с компьютером.
Происходит это взаимодействие с помощью библиотеки OpenFeign, которая использует HttpClient.
В качестве хранилища данных использовалась СУБД Postgres. У каждого сервиса своя база данных в поднятой СУБД.
Для создания схемы БД была использована библиотека Flyway, применившая написанные миграции при старте приложения.
Запросы к сервисам проксируют шлюз на основе Nginx. Для этого перед запуском nginx был описан конфигурационный файл nginx.conf,
в котором были указаны прослушиваемый порт и название сервера (в блоке server), маршруты до микросервисов и параметры проксирования (в блоке location).
Таким образом, с помощью Docker Compose были подняты сервисы: Таким образом, с помощью Docker Compose были подняты сервисы:
- company
- vacancy - room
- computer
- postgres - postgres
- nginx - nginx
## Как запустить ## Как запустить
Для того, чтобы запустить сервисы, необходимо выполнить следующие действия: Для того, чтобы запустить сервисы, необходимо выполнить следующие действия:
1. Установить и запустить Docker Engine или Docker Desktop
2. Через консоль перейти в папку, в которой расположен файл docker-compose.yml Установите и запустите Docker Engine или Docker Desktop.
3. Выполнить команду: Перейдите в папку, содержащую файл docker-compose.yml через консоль.
``` Выполните команду:
docker compose up --build `docker compose up --build`
``` Далее можно осуществлять запросы к сервисам по адресу http://localhost/{location} , где часть пути location меняется в зависимости от сервиса и запроса.
В случае успешного запуска всех контейнеров в консоли будет выведено следующее сообщение:
```
[+] Running 5/5
✔ Network borschevskaya_anna_lab_3_default Created 0.0s
✔ Container postgres Started 0.6s
✔ Container vacancy Started 1.1s
✔ Container company Started 0.9s
✔ Container borschevskaya_anna_lab_3-nginx-1 Started
```
Далее можно осуществлять запросы к сервисам по адресу http://localhost/{location}, где часть пути location меняется в зависимости от сервиса и запроса.
## Видео-отчет ## Видео-отчет
Работоспособность лабораторной работы можно оценить в следующем [видео](https://disk.yandex.ru/i/KPNBfnlcgl1auw).
Демонстрация взаимодействия с системой производится с применением сервиса Postman. Работоспособность лабораторной работы можно оценить в следующем видео: https://zyzf.space/s/iWxb6b4EFQjPias.
Демонстрация взаимодействия с системой производится с помощью утилиты httpie.