forked from Alexey/DAS_2024_1
done
This commit is contained in:
parent
e3390d53dd
commit
a02eb5e9d9
@ -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.
|
||||||
|
Loading…
Reference in New Issue
Block a user