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. идентификатор помещения
Компьютер с помещением связан как "один ко многим".
Каждый из сервисов имеет API с пятью эндпоинтами. При этом в сервисе computer при запросе компьютера по id происходит дополнительный запрос в сервис room для получения информации о помещении, связанным с компьютером.
Происходит это взаимодействие с помощью библиотеки OpenFeign, которая использует HttpClient.
В качестве хранилища данных использовалась СУБД Postgres. У каждого сервиса своя база данных в поднятой СУБД. В качестве хранилища данных использовалась СУБД Postgres. У каждого сервиса своя база данных в поднятой СУБД.
Для создания схемы БД была использована библиотека Flyway, которая применила написанные миграции при старте приложения. Для создания схемы БД была использована библиотека Flyway, применившая написанные миграции при старте приложения.
Запросы к сервисам проксируют шлюз на основе Nginx. Для этого перед запуском nginx был описан конфигурационный файл nginx.conf,
Запросы к сервисам проксирует шлюз на основе Nginx. Для этого перед запуском nginx был описан конфигурационный файл nginx.conf, в котором были указаны прослушиваемый порт и название сервера (в блоке server), маршруты до микросервисов и параметры проксирования (в блоке location).
в котором описан прослушиваемый порт и название сервера (в блоке 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`
```
В случае успешного запуска всех контейнеров в консоли будет выведено следующее сообщение:
```
[+] 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 меняется в зависимости от сервиса и запроса. Далее можно осуществлять запросы к сервисам по адресу http://localhost/{location} , где часть пути location меняется в зависимости от сервиса и запроса.
## Видео-отчет ## Видео-отчет
Работоспособность лабораторной работы можно оценить в следующем [видео](https://disk.yandex.ru/i/KPNBfnlcgl1auw).
Демонстрация взаимодействия с системой производится с применением сервиса Postman. Работоспособность лабораторной работы можно оценить в следующем видео: https://zyzf.space/s/iWxb6b4EFQjPias.
Демонстрация взаимодействия с системой производится с помощью утилиты httpie.