From a02eb5e9d9097e0345ff53636352c77b5cac2712 Mon Sep 17 00:00:00 2001 From: Zyzf Date: Sat, 2 Nov 2024 20:14:47 +0400 Subject: [PATCH] done --- kalyshev_yan_lab_3/README.md | 74 ++++++++++++++++-------------------- 1 file changed, 32 insertions(+), 42 deletions(-) diff --git a/kalyshev_yan_lab_3/README.md b/kalyshev_yan_lab_3/README.md index 0aabe86..7f98469 100644 --- a/kalyshev_yan_lab_3/README.md +++ b/kalyshev_yan_lab_3/README.md @@ -1,58 +1,48 @@ # Отчет. Лабораторная работа 3 ## Описание -В рамках лабораторной работы № 3 были реализованы два сервиса (Java + Spring), осуществляющие CRUD-операции над сущностями. +В рамках лабораторной работы № 3 были реализованы два сервиса (Java + Spring), предоставляющие CRUD-операции для сущностей. Модель данных следующая: -Сущность "Компания" (сервис company) -- идентификатор компании -- название -- адрес +Сущность "Помещение" (сервис room): -Сущность "Вакансия" (сервис vacancy) -- идентификатор вакансии -- название -- описание -- нижняя граница зарплаты -- верхняя граница зарплаты -- идентификатор компании +1. идентификатор помещения +2. название +3. адрес -Компания с вакансией связана как "один ко многим". +Сущность "Компьютер" (сервис computer): -Каждый из сервисов имеет API с пятью эндпоинтами. При этом в сервисе vacancy при запросе вакансии по id происходит -дополнительный запрос в сервис company для получения информации по компании, связанной с вакансией. -Происходит это взаимодействие с помощью библиотеки OpenFeign, которая "под капотом" использует HttpClient. - -В качестве хранилища данных использовалась СУБД Postgres. У каждого сервиса своя база данных в поднятой СУБД. -Для создания схемы БД была использована библиотека Flyway, которая применила написанные миграции при старте приложения. - -Запросы к сервисам проксирует шлюз на основе Nginx. Для этого перед запуском nginx был описан конфигурационный файл nginx.conf, -в котором описан прослушиваемый порт и название сервера (в блоке server), маршруты до микросервисов и параметры проксирования (в блоке location). +1. идентификатор компьютера +2. название +3. описание +4. идентификатор помещения +Компьютер с помещением связан как "один ко многим". +Каждый из сервисов имеет API с пятью эндпоинтами. При этом в сервисе computer при запросе компьютера по id происходит дополнительный запрос в сервис room для получения информации о помещении, связанным с компьютером. +Происходит это взаимодействие с помощью библиотеки OpenFeign, которая использует HttpClient. +В качестве хранилища данных использовалась СУБД Postgres. У каждого сервиса своя база данных в поднятой СУБД. +Для создания схемы БД была использована библиотека Flyway, применившая написанные миграции при старте приложения. +Запросы к сервисам проксируют шлюз на основе Nginx. Для этого перед запуском nginx был описан конфигурационный файл nginx.conf, +в котором были указаны прослушиваемый порт и название сервера (в блоке server), маршруты до микросервисов и параметры проксирования (в блоке location). Таким образом, с помощью Docker Compose были подняты сервисы: -- company -- vacancy + +- room +- computer - postgres - nginx + ## Как запустить + Для того, чтобы запустить сервисы, необходимо выполнить следующие действия: -1. Установить и запустить Docker Engine или Docker Desktop -2. Через консоль перейти в папку, в которой расположен файл docker-compose.yml -3. Выполнить команду: -``` -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 меняется в зависимости от сервиса и запроса. + +Установите и запустите Docker Engine или Docker Desktop. +Перейдите в папку, содержащую файл docker-compose.yml через консоль. +Выполните команду: +`docker compose up --build` +Далее можно осуществлять запросы к сервисам по адресу http://localhost/{location} , где часть пути location меняется в зависимости от сервиса и запроса. + ## Видео-отчет -Работоспособность лабораторной работы можно оценить в следующем [видео](https://disk.yandex.ru/i/KPNBfnlcgl1auw). -Демонстрация взаимодействия с системой производится с применением сервиса Postman. \ No newline at end of file + +Работоспособность лабораторной работы можно оценить в следующем видео: https://zyzf.space/s/iWxb6b4EFQjPias. +Демонстрация взаимодействия с системой производится с помощью утилиты httpie.