В проекте реализованы три микросервиса:
- producer-service - публикует события пользователей в Kafka
- consumer-service - принимает события из Kafka и сохраняет их в Cassandra
- query-service - предоставляет REST API для запросов данных из Cassandra
Перейти в папку docker и запустить там скрипт:
docker-compose up -dПосле запусков контейнеров создать модель данных:
docker exec -it cassandra cqlsh -f /init/init.cqlТак как проект мультимодульный, сборка выполняется из корневой директории:
mvn clean installВ каждой из папок микросервисов (producer-service, consumer-service, query-service) запустить spring-boot приложение:
Windows:
.\mvnw spring-boot:runUnix:
mvn spring-boot:runEndpoint для создания пользовательского события доступен по адресу http://localhost:8081/events:
POST /events
Пример body:
{
"userId": "some_user_id",
"eventType": "LOGIN",
"metadata": {
"ip": "192.168.0.1",
"device": "windows"
}
}Для анализа событий доступен Swagger UI по адресу: http://localhost:8083/swagger-ui/index.html