Skip to content

TusyaSonne/WeatherKafkaTask

Folders and files

NameName
Last commit message
Last commit date

Latest commit

 

History

6 Commits
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 

Repository files navigation

Приложение с аналитикой погоды на Kafka

WeatherStream — это простое приложение на Java + Spring Boot, которое имитирует поток погодных данных и анализирует их в реальном времени с использованием Apache Kafka.


🌤️ Назначение

  • Симулировать погодные данные в разных городах (город, дата, температура, состояние).
  • Передавать сообщения через Kafka-топик weather-topic.
  • Вести аналитику: самые солнечные города, самые жаркие дни и т.д.
  • Без базы данных — только Kafka + оперативная память.
  • Результаты отображаются в консоли.

🧩 Архитектура

  • Продюсер (WeatherProducer)
    Генерирует случайные погодные данные каждые 2 секунды и отправляет в Kafka.

  • Консьюмер (WeatherConsumer)
    Получает сообщения и передаёт их в сервис аналитики.

  • Сервис аналитики (WeatherAnalyticsService)

    • Считает количество солнечных/дождливых дней по городам
    • Находит самый жаркий день
    • Вычисляет среднюю температуру

Установка и запуск

Требования:

  • Docker Desktop (либо Docker и Docker Compose)

Шаги:

  1. Клонируйте репозиторий:
    git clone https://github.com/TusyaSonne/WeatherKafkaTask.git
  2. Перейдите в директорию проекта:
    cd WeatherKafkaTask
  3. Запустите приложение:
    docker-compose up --build

⚙️ Используемые технологии

  • Java 17
  • Spring Boot 3.5.3
  • Apache Kafka
  • JUnit 5, Testcontainers (Kafka-брокер для тестов)
  • Docker + Docker Compose
  • Jackson (для JSON)
  • Maven

About

Kafka-based weather analytics app

Resources

Stars

Watchers

Forks

Releases

No releases published

Packages

No packages published