feat: replace iot adapter with mqtt command pipeline
This commit is contained in:
@@ -53,7 +53,8 @@ flowchart LR
|
||||
| --- | --- | --- |
|
||||
| `api` | 用户端和五个管理系统的 HTTP API、鉴权、同步业务事务 | 无状态部署;所有写操作支持幂等键、事务和审计 |
|
||||
| `worker` | 事件消费、告警、派单、推送、对账、超时扫描、轨迹异常识别 | Redis Streams 消费组;重试、死信、幂等消费和可观测的积压告警 |
|
||||
| `iot` | MQTT 设备会话、协议适配、遥测校验、命令下发与回执 | 保持设备会话一致性;命令/回执持久化;协议版本和设备身份校验 |
|
||||
| `iot-client` | 管理系统/App 的设备上下行 HTTP 边界、幂等受理与状态查询 | 不绕过 API 的 JWT、角色、对象归属与安全状态校验 |
|
||||
| `iot-server` | 外部 MQTT Broker 会话、厂商协议适配、遥测校验、命令下发与回执 | 保持设备会话一致性;协议版本、设备身份、LRC8 与 AES 校验 |
|
||||
|
||||
关键业务采用“数据库事务 + Outbox 事件表 + Worker 投递”的模式:先在 PostgreSQL 提交业务事实与待投递事件,再异步写入 Redis Streams。这样 Redis 故障或 Worker 重启不会丢失订单、告警、支付或设备命令的业务事实。
|
||||
|
||||
@@ -62,7 +63,7 @@ flowchart LR
|
||||
| 基线 | 路径 | 使用要求 |
|
||||
| --- | --- | --- |
|
||||
| 前端工程基线 | 现有 Vue 管理端 | Vue 管理系统统一前端框架、路由、状态管理、请求封装、权限指令、表格表单、主题、错误处理、国际化与测试规范 |
|
||||
| 后端工程基线 | `backend/{api,worker,iot}` | Go API、Worker、IoT 进程统一沿用配置、日志、错误码、认证、数据库访问、任务、测试和发布规范 |
|
||||
| 后端工程基线 | `backend/{api,worker,iot-client,iot-server}` | Go API、Worker 与两个 IoT 进程统一沿用配置、日志、错误码、认证、任务、测试和发布规范 |
|
||||
|
||||
业务项目应通过共享包、模板或上游同步机制复用标准库,禁止将标准库目录复制到每个子项目后自行漂移。标准库升级需要记录版本、影响范围、兼容策略和回滚方式。
|
||||
|
||||
@@ -97,7 +98,8 @@ platforms/
|
||||
backend/
|
||||
api/ # Go HTTP API、BFF、同步领域事务
|
||||
worker/ # Go 异步任务:派单、告警、通知、对账、超时扫描
|
||||
iot/ # Go MQTT 协议适配、设备命令、遥测与回执
|
||||
iot-client/ # 管理系统/App 的设备上下行接口
|
||||
iot-server/ # MQTT 会话、厂商协议、设备命令、遥测与回执
|
||||
contracts/
|
||||
openapi/ # HTTP API 契约及生成配置
|
||||
asyncapi/ # MQTT/Redis Streams 事件契约与 Schema
|
||||
@@ -112,7 +114,7 @@ platforms/
|
||||
performance/ # 遥测、订单、轨迹与消息积压压测
|
||||
```
|
||||
|
||||
其中 `apps/user_app`、`apps/service_app`、`backend/{api,worker,iot}` 与当前管理端目录已经落地;其余标记为规划的目录仍不得因局部任务提前创建空壳。
|
||||
其中 `apps/user_app`、`apps/service_app`、`backend/{api,worker,iot-client,iot-server}` 与当前管理端目录已经落地;其余标记为规划的目录仍不得因局部任务提前创建空壳。
|
||||
|
||||
## 6. 后端领域划分
|
||||
|
||||
|
||||
Reference in New Issue
Block a user