6.0 KiB
6.0 KiB
Prompt для Gemini: диаграмма пайплайна IoT Demo
Задача
Создай красивую диаграмму (flowchart/архитектурную схему) пайплайна данных для IoT-демонстрации «Умный дом». Нужна одна картинка с 6 блоками сервисов и стрелками между ними.
Сервисы (блоки)
1. Producer (верхний левый угол)
- Название: Producer
- Подпись: Node.js · Генератор IoT-событий
- Форма: прямоугольник, синий/голубой (#3B82F6 или похожий)
- Иконка: ⚙️ или 📡
- Что делает: Эмулирует 8 IoT-датчиков (температура °C, влажность %, энергопотребление kW), каждые 3 секунды генерирует случайное JSON-событие
2. RabbitMQ (центр-верх)
- Название: RabbitMQ
- Подпись: Очередь сообщений · iot-events
- Форма: прямоугольник, оранжевый (#FF6600 — брендовый цвет RabbitMQ)
- Иконка: 🐰 или 📬
- Что делает: Буфер сообщений AMQP. Принимает от Producer, отдаёт Consumer. Durable — не теряет при рестарте.
3. Consumer (правый верхний)
- Название: Consumer
- Подпись: Node.js · Обработчик
- Форма: прямоугольник, зелёный (#10B981)
- Иконка: 📥 или 🔄
- Что делает: Читает очередь RabbitMQ, параллельно пишет в Redis и MongoDB
4. Redis (левый-центр, под Producer)
- Название: Redis
- Подпись: Кэш · latest + counters + recent
- Форма: прямоугольник, красный (#DC2626 — брендовый цвет Redis)
- Иконка: ⚡ или 🗄️
- Что делает: Оперативный кэш для Dashboard. Хранит: последние значения датчиков (hash), счётчики по типам (hash), ленту 1000 событий (zset).
5. MongoDB (центр-низ)
- Название: MongoDB
- Подпись: Архив · TTL 7 дней
- Форма: прямоугольник, тёмно-зелёный (#00684A — брендовый цвет MongoDB)
- Иконка: 🍃 или 💾
- Что делает: Постоянный архив всех событий в коллекции iot_events. Автоудаление через 7 дней (TTL-индекс).
6. Dashboard (правый-низ)
- Название: Dashboard
- Подпись: Node.js + Chart.js · Веб-интерфейс
- Форма: прямоугольник, фиолетовый (#8B5CF6)
- Иконка: 📊 или 🖥️
- Что делает: Читает Redis, отдаёт JSON API и HTML с графиками. Bar chart (значения), Doughnut (счётчики), таблица событий. Автообновление каждые 3 сек.
Стрелки (потоки данных)
| От | К | Протокол | Подпись на стрелке |
|---|---|---|---|
| Producer | RabbitMQ | AMQP (порт 5672) | JSON-события → очередь iot-events |
| RabbitMQ | Consumer | AMQP (порт 5672) | JSON-события ← очередь iot-events |
| Consumer | Redis (latest) | TCP (порт 6379) | HSET sensor_id → значение |
| Consumer | Redis (counters) | TCP (порт 6379) | HINCRBY device_type |
| Consumer | Redis (recent) | TCP (порт 6379) | ZADD лента событий |
| Consumer | MongoDB | TCP (порт 27017) | insertOne → коллекция iot_events |
| Redis | Dashboard | TCP (порт 6379) | HGETALL + ZRANGE (только чтение) |
Расположение на схеме
Producer ──→ RabbitMQ ──→ Consumer
│
┌──────────────┼──────────────┐
↓ ↓ ↓
Redis MongoDB Redis
(latest, (архив) (counters,
recent) ...)
│ │ │
└──────────────┼──────────────┘
↓
Dashboard
Стиль
- Тёмный фон (#0F172A или похожий) — как у самого дашборда
- Блоки с закруглёнными углами (border-radius 8–12px)
- Цвета блоков — брендовые цвета каждого сервиса (см. выше)
- Текст в блоках — белый или светлый
- Стрелки — с подписями протоколов (AMQP, TCP) и названиями данных
- Иконки в блоках приветствуются
- Легенда внизу: протоколы (AMQP — оранжевая стрелка, TCP — серая стрелка)
- Заголовок схемы: «IoT Demo — Умный дом» и подзаголовок «6 сервисов Nubes Cloud»
Дополнительно
Можно добавить разделительную линию (или фон) показывающую, что все сервисы внутри Kubernetes-кластера, а наружу торчит только Dashboard (HTTP/HTTPS) и Producer/Consumer (для health-check).
Формат
Сгенерируй SVG или PNG, который можно вставить в README.md.