30 lines
1.2 KiB
Markdown
30 lines
1.2 KiB
Markdown
# Шаг 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
|