Skip to content

Social network - microservice-dialog (Spring Boot / PostgreSQL / Spring Data JPA / MapStruct / Liquibase / Apache Kafka / Concurrency / Maven / Docker / GitLab / Kubernetes)

Notifications You must be signed in to change notification settings

alex90bar/microservice-dialog

Repository files navigation

microservice dialog

Описание проекта

diplom-group25 - это учебный проект на Spring Boot, состоит из 9 микросервисов, представляет собой социальную сеть.
Мною реализовано 4 микросервиса, один из них - microservice dialog.
Ссылка на стенд: http://130.61.44.151/login


Презентация проекта: https://www.youtube.com/watch?v=wHGmJVBqXho


microservice dialog отвечает за следующий функционал:
- создание нового диалога, сохранение его в БД
- получение сообщений диалога (реализована пагинация, при получении сообщений меняется статус с непрочитанного на прочитанное, идет пересчет количества новых сообщений)
- сохранение нового сообщения, полученного через Kafka, в БД, отправка уведомления о получении сообщения через Kafka в microservice-streaming
- получение всех диалогов пользователя с последним сообщением для каждого диалога для отображения их на фронте

Сервис упакован в докер-контейнер.

docker push skillgroup25/microservice-dialog


Порт сервиса: 8080
БД проекта - PostgreSQL
Маппинг сущностей выполняется через MapStruct.
Подключен Liquibase для удобства контроля версий БД.
Взаимодействие приложения с БД через Spring Data JPA / Hibernate.
Spring Security на Jwt-токенах (передается в headers)
В проекте также используется Lombok для упрощения процесса разработки и снижения количества кода.
Обработка входящий сообщений Apache Kafka реализована в асинхронном режиме с помощью ThreadPoolTaskExecutor
Подключен Swagger, подробная документация по эндпоинтам: http://localhost:8080/swagger-ui/index.html
Также можно открыть в файле swagger.json в корне проекта

About

Social network - microservice-dialog (Spring Boot / PostgreSQL / Spring Data JPA / MapStruct / Liquibase / Apache Kafka / Concurrency / Maven / Docker / GitLab / Kubernetes)

Topics

Resources

Stars

Watchers

Forks

Releases

No releases published

Packages

No packages published