Сервер конфигураций, построенный на базе spring-cloud-config-server. Для хранения конфигураций сервисов используется JDBC Backend (база данных - PostgreSQL). Для работы с созданием/обновлением/удалением/получением свойств конфигураций - предоставляется REST взаимодействие:
МЕТОД | ПУТЬ | ОПИСАНИЕ | ТЕЛО ЗАПРОСА | ПАРАМЕТРЫ ЗАПРОСА | ОТВЕТ ОТ СЕРВЕРА |
---|---|---|---|---|---|
POST | /api/configurations/page | Постраничный поиск свойств конфигураций | SearchSettings | - | TableResult<PropertyReturnDto> |
POST | /api/configurations | Создание свойства конфигурации. Если оно уже есть - ошибка дублирования | PropertyDto | refresh | PropertyReturnDto |
POST | /api/configurations/batch | Создание нескольких свойств конфигураций. Если они существуют - ошибка дублирования | List<PropertyDto> | refresh | List<PropertyReturnDto> |
GET | /api/configurations/{propertyId} | Поиск свойства конфигурации по UUID идентификатору | - | - | PropertyReturnDto |
PUT | /api/configurations | Обновление существующего свойства конфигурации. Если оно не существует - создается новое | PropertyDto | refresh | PropertyReturnDto |
PUT | /api/configurations/batch | Обновление нескольких существующих свойств конфигураций. Если они не существуют - создаются новые | List<PropertyDto> | refresh | List<PropertyReturnDto> |
DELETE | /api/configurations/batch | Удаление нескольких свойств конфигураций | SearchSettingsSimple | refresh | List<PropertyReturnDto> |
DELETE | /api/configurations/{propertyId} | Удаление свойства конфигурации по UUID идентификатору | - | refresh | PropertyReturnDto |
POST | /api/configurations/refresh/{destination} | Отправка сообщения выбранному сервису с информацией о том, что нужно получить обновленные свойства конфигурации | - | - | - |
POST | /api/configurations/refresh | Отправка сообщения нескольким сервисам с информацией о том, что нужно получить обновленные свойства конфигурации | List<String> | - | - |
- JDK: 18 и выше;
- Docker: postgres + kafka;
Все команды выполняются в консоли. Для всех действий можно использовать IDE, но кто это знает — тот так и будет делать и инструкция ему не нужна.
Клонирование репозитория
- Создаем папку:
mkdir GitProjects
(имя папки может быть любым, но вам нужно будет продолжать использовать только его); - Переходим в папку:
cd GitProjects
; - Клонируем репозиторий:
git clone https://github.com/HogwartsSchoolOfMagic/ConfigurationService.git
; - Переходим в созданную папку:
cd ConfigurationService
. - Выполнено.
Сборка проекта
Внутри папки: ConfigurationService
, нужно выполнить команду: mvn clean install
.
Настройка и запуск базы данных
После клонирования репозитория — мы уже должны быть в папке проекта.
- Для работы Docker нужно его сначала установить - https://docs.docker.com/engine/install;
- Чтобы настроить базу данных, необходимую для работы приложения, переходим в папку:
cd docker\postgres
; - Запускаем .bat файл командой:
postgres.bat
. Стандартный порт: 5024;
Запуск приложения
После сборки приложения выполните команду: mvn spring-boot:run
. Стандартный порт: 8888.
- Трансляция свойств конфигурации;
- Настройка, подключение и работа с базой данных Postgres;
- Использование LiquiBase для создания структуры базы данных.
- Spring Boot: WEB, Data, Admin client;
- Spring Cloud: Server, Eureka client;
- Postgres;
- Kafka;
- LiquiBase;
- Lombok;
- Mapstruct;
- Docker.
Copyright ©2022, Владислав [SmithyVL] Кузнецов