doc: Шаг 2 — разбиение data-plane/control-plane
This commit is contained in:
@@ -141,3 +141,17 @@ curl -sS https://sqs.sinefo.ru/health
|
||||
- **logrotate** `/etc/logrotate.d/shared-sqs`: daily, rotate 7, compress, delaycompress,
|
||||
copytruncate, `su naeel naeel` (copytruncate — процесс держит файл открытым).
|
||||
- Billing (PostgreSQL) и JWT-валидация — **не настроены** (сервис работает без них).
|
||||
|
||||
## 10. Разбиение data-plane / control-plane (Шаг 2, 2026-10-10, коммит `c1520c0`)
|
||||
|
||||
- `router.NewDataPlane(store)` — публичный SQS API: `/health`, `/static`, `/examples`, SQS actions.
|
||||
- `router.NewControlPlane(store, adminToken)` — админка: `/admin` (UI+API), `/metrics`, `/ui`, `/static`.
|
||||
- `main`: два HTTP-сервера — data-plane на `0.0.0.0:<--port>` (4100, публично), control-plane
|
||||
на `127.0.0.1:<--control-port>` (4101, только localhost).
|
||||
- Проверено: публично `/health` → 200; SQS API работает; `/admin` и `/metrics` публично → **403**
|
||||
(падают в SQS-auth — админка наружу **НЕ доступна**). Локально: `127.0.0.1:4101/admin` → 200,
|
||||
`4101/metrics` без токена → 401.
|
||||
|
||||
**Почему пока два листенера в одном процессе, а не два процесса:** состояние (очереди/тенанты) —
|
||||
in-memory; два процесса разъедутся (админка создаст тенанта в своей памяти — data-plane его не увидит).
|
||||
Полноценный процесс-split — после Шага 3 (Redis как источник истины).
|
||||
|
||||
Reference in New Issue
Block a user