Skip to content

Social network group25 - microservice-streaming (Spring Boot / WebSockets / Apache Kafka / Concurrency / Maven / Docker / GitLab / Kubernetes)

Notifications You must be signed in to change notification settings

alex90bar/microservice-streaming

Folders and files

NameName
Last commit message
Last commit date

Latest commit

 

History

32 Commits
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 

Repository files navigation

microservice-streaming

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

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


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


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

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

docker push skillgroup25/microservice-streaming


Порт сервиса: 8080
Spring Security на Jwt-токенах (передается в headers)
В проекте используется обычный WebSocket (без STOMP) с использованием TextWebSocketHandler, аутентификация клиента происходит через Cookie (подключен дополнительный фильтр в Security, он "вытаскивает" jwt-токен из Cookie и "перекладывает" его в headers)
В проекте также используется Lombok для упрощения процесса разработки и снижения количества кода.
Обработка входящий сообщений Apache Kafka реализована в асинхронном режиме с помощью ThreadPoolTaskExecutor

About

Social network group25 - microservice-streaming (Spring Boot / WebSockets / Apache Kafka / Concurrency / Maven / Docker / GitLab / Kubernetes)

Topics

Resources

Stars

Watchers

Forks

Releases

No releases published

Packages

No packages published