Add HOT/WARM/COLD data tier to design doc
This commit is contained in:
+33
-9
@@ -325,21 +325,45 @@ func (h *SSEHub) Broadcast(eventType string, data interface{})
|
|||||||
|
|
||||||
## 8. 数据流
|
## 8. 数据流
|
||||||
|
|
||||||
|
### 三层数据分层
|
||||||
|
|
||||||
|
```
|
||||||
|
┌──────────────────────────────────────────────┐
|
||||||
|
│ HOT (内存 only, 500ms) │
|
||||||
|
│ PriceStore: 6币×4所 实时价 │
|
||||||
|
│ Trader.positions: 当前持仓 │
|
||||||
|
│ Scanner: 扫描结果 │
|
||||||
|
│ 不落盘,重启丢失,但重连 WS 秒恢复 │
|
||||||
|
├──────────────────────────────────────────────┤
|
||||||
|
│ WARM (SQLite, 事件驱动) │
|
||||||
|
│ 平仓 → INSERT trades │
|
||||||
|
│ 每腿成交 → INSERT orders │
|
||||||
|
│ 配置修改 → INSERT/UPSERT config_snapshots │
|
||||||
|
│ WS 重连 → INSERT exchange_events(可选) │
|
||||||
|
│ 写入频率: < 1次/秒 │
|
||||||
|
├──────────────────────────────────────────────┤
|
||||||
|
│ COLD (时序方案待定, 未来) │
|
||||||
|
│ 价格存档:每分钟采样 × 6币 × 4所 │
|
||||||
|
│ 日产量: ~34,560行 → 可存 SQLite 也可用 │
|
||||||
|
│ TimescaleDB / InfluxDB (如果要做回测平台) │
|
||||||
|
└──────────────────────────────────────────────┘
|
||||||
|
```
|
||||||
|
|
||||||
|
### 实时数据 → 网页
|
||||||
|
|
||||||
```
|
```
|
||||||
WS 数据流 (500ms):
|
WS 数据流 (500ms):
|
||||||
┌─────────┐ price ┌──────────┐ SSE push ┌─────────┐
|
┌─────────┐ price ┌──────────┐ SSE push ┌─────────┐
|
||||||
│ Exchange│──────────►│ Engine │─────────────►│ Browser │
|
│ Exchange│──────────►│ Engine │─────────────►│ Browser │
|
||||||
│ WS │ │(内存状态)│ │(实时更新)│
|
│ WS │ │ (HOT层) │ │(实时更新)│
|
||||||
└─────────┘ └────┬─────┘ └─────────┘
|
└─────────┘ └────┬─────┘ └─────────┘
|
||||||
│
|
│ 仅事件写入
|
||||||
│ 写入 SQLite
|
┌─────▼──────┐
|
||||||
▼
|
│ SQLite │
|
||||||
┌──────────┐
|
│ (WARM层) │
|
||||||
│ SQLite │
|
└────────────┘
|
||||||
│ (持久化) │
|
|
||||||
└──────────┘
|
|
||||||
|
|
||||||
API 请求:
|
API 请求 (读 WARM 层):
|
||||||
┌─────────┐ GET /api/... ┌──────────┐ SQL ┌────────┐
|
┌─────────┐ GET /api/... ┌──────────┐ SQL ┌────────┐
|
||||||
│ Browser │────────────────►│ Server │──────────►│ SQLite │
|
│ Browser │────────────────►│ Server │──────────►│ SQLite │
|
||||||
│ (页面) │◄────────────────│(REST API)│◄──────────┘ │
|
│ (页面) │◄────────────────│(REST API)│◄──────────┘ │
|
||||||
|
|||||||
Reference in New Issue
Block a user