# Шаг 2 — Репозитории и код приложений **Дата:** 2026-07-21 ## Созданы Git-репозитории на Gitea | Репозиторий | URL | |-------------|-----| | tf-iot-producer | https://gitea.services.ngcloud.ru/Nail/tf-iot-producer | | tf-iot-consumer | https://gitea.services.ngcloud.ru/Nail/tf-iot-consumer | ## Producer (tf-iot-producer) `app.py` — Flask + KafkaProducer: - Генерирует фейковые IoT-события (8 датчиков: температура, влажность, энергия) - Шлёт в Kafka каждые `PRODUCE_INTERVAL` секунд (по умолчанию 3) - Топик и брокеры — из env (задаёт Terraform) - SASL_PLAINTEXT аутентификация - `GET /` — статистика (events_sent, errors) - `GET /health` — healthcheck ## Consumer (tf-iot-consumer) `app.py` — Flask + KafkaConsumer + ClickHouse: - Читает события из Kafka, пишет батчами по 10 в ClickHouse - Создаёт таблицу `iot_events` (MergeTree) при старте - SASL_PLAINTEXT → Kafka, HTTP → ClickHouse - `GET /` — статистика (events_consumed, events_in_db) - `GET /health` — healthcheck