feat(landing): hand-drawn pipeline SVG diagram; v0.1.12
This commit is contained in:
@@ -143,6 +143,41 @@ pre code { background: none; border: none; padding: 0; }
|
||||
line-height: 1.7;
|
||||
}
|
||||
.hint-box code { font-family: ui-monospace, Menlo, Consolas, monospace; font-size: 13px; }
|
||||
/* Схема пайплайна */
|
||||
.flow {
|
||||
display: flex;
|
||||
flex-wrap: wrap;
|
||||
gap: 4px;
|
||||
align-items: stretch;
|
||||
margin: 10px 0 4px;
|
||||
}
|
||||
.flow-node {
|
||||
border: 1px solid var(--brand-gray);
|
||||
border-radius: 10px;
|
||||
background: #fff;
|
||||
padding: 10px 12px;
|
||||
min-width: 110px;
|
||||
text-align: center;
|
||||
box-shadow: 0 1px 2px rgba(0,0,0,0.04);
|
||||
}
|
||||
.flow-node .fn-title { font-weight: 600; font-size: 13.5px; }
|
||||
.flow-node .fn-sub {
|
||||
font-family: ui-monospace, Menlo, Consolas, monospace;
|
||||
font-size: 11.5px;
|
||||
color: var(--text-muted);
|
||||
margin-top: 3px;
|
||||
word-break: break-all;
|
||||
}
|
||||
.flow-node.acc { border-color: #bfdbfe; background: #eff6ff; }
|
||||
.flow-node.acc .fn-title { color: var(--brand-primary); }
|
||||
.flow-arrow {
|
||||
align-self: center;
|
||||
color: var(--text-muted);
|
||||
font-size: 16px;
|
||||
padding: 0 2px;
|
||||
}
|
||||
.flow-caption { color: var(--text-muted); font-size: 12px; margin-top: 6px; }
|
||||
.pipeline { width: 100%; max-width: 760px; display: block; margin: 12px auto 4px; }
|
||||
</style>
|
||||
</head>
|
||||
<body>
|
||||
@@ -172,10 +207,20 @@ pre code { background: none; border: none; padding: 0; }
|
||||
<div class="card-body">
|
||||
<p>Устройство (датчик, бойлер, счётчик) отправляет показания по протоколу
|
||||
MQTT. Дальше показания проходят по цепочке и попадают в базу данных:</p>
|
||||
<div class="hint-box">
|
||||
устройство → <code>MQTT (wss)</code> → очередь <code>iot-telemetry</code>
|
||||
→ <b>PostgreSQL</b> → API / консоль
|
||||
<img class="pipeline" src="/static/pipeline.svg" alt="Схема пайплайна IoT">
|
||||
<div class="flow-caption">
|
||||
Между брокером и базой работают бридж и потребитель (части iot-service):
|
||||
бридж кладёт показания в очередь, потребитель пишет их в базу.
|
||||
</div>
|
||||
<p style="color:#374151">
|
||||
Очередь <code>iot-telemetry</code> — внутренний буфер сервиса: она
|
||||
защищает показания от потерь при всплесках и сбоях базы. Пользователю
|
||||
креды очереди НЕ нужны — сервис ходит в неё сам. Если требуется
|
||||
посмотреть сообщения вручную — консоль очереди:
|
||||
<a href="https://sqs.containerk8s.dev.nubes.ru/ui">sqs.containerk8s.dev.nubes.ru/ui</a>
|
||||
(вход по API-токену Nubes; описание — на
|
||||
<a href="https://sqs.containerk8s.dev.nubes.ru/">sqs.containerk8s.dev.nubes.ru</a>).
|
||||
</p>
|
||||
<p style="color:#374151">
|
||||
У каждого устройства — свои логин и пароль, поэтому чужое устройство не
|
||||
сможет писать в ваш топик. Данные разных проектов (namespace) лежат в
|
||||
|
||||
Reference in New Issue
Block a user