WeatherStream — это простое приложение на Java + Spring Boot, которое имитирует поток погодных данных и анализирует их в реальном времени с использованием Apache Kafka.
- Симулировать погодные данные в разных городах (город, дата, температура, состояние).
- Передавать сообщения через Kafka-топик
weather-topic. - Вести аналитику: самые солнечные города, самые жаркие дни и т.д.
- Без базы данных — только Kafka + оперативная память.
- Результаты отображаются в консоли.
-
Продюсер (
WeatherProducer)
Генерирует случайные погодные данные каждые 2 секунды и отправляет в Kafka. -
Консьюмер (
WeatherConsumer)
Получает сообщения и передаёт их в сервис аналитики. -
Сервис аналитики (
WeatherAnalyticsService)- Считает количество солнечных/дождливых дней по городам
- Находит самый жаркий день
- Вычисляет среднюю температуру
- Docker Desktop (либо Docker и Docker Compose)
- Клонируйте репозиторий:
git clone https://github.com/TusyaSonne/WeatherKafkaTask.git
- Перейдите в директорию проекта:
cd WeatherKafkaTask - Запустите приложение:
docker-compose up --build
- Java 17
- Spring Boot 3.5.3
- Apache Kafka
- JUnit 5, Testcontainers (Kafka-брокер для тестов)
- Docker + Docker Compose
- Jackson (для JSON)
- Maven