跳到主要内容

BioF3 目标架构(推荐演进方向)

现状(已上线):见对话中的「现在」— ECS 反代 + 家里 Dell API + RDS P0+P1 + biof3-aux.sqlite P2 + OSS。
本文:为什么「可选后续」更合理,以及怎么分阶段走过去。


1. 对比一眼看懂

维度现在 ✅目标(推荐)
用户入口ECS 静态 + /api/r/ 反代不变
API / 登录 / Copilot 网关家里 DellECS(或 SAE/K8s)轻量 Node
算力(R / 任务队列)DellDell 纯 Worker(或部分迁阿里云大内存 ECS)
关系型数据RDS P0+P1 + aux 里 P2RDS 含全部表(P0+P1+P2)
过渡库biof3-aux.sqlite去掉
Dell 挂了全站 API 停仍可登录、看项目、Copilot(若网关不依赖本机 R)
RDS 连接Dell 公网连 RDSECS 内网连 RDS(更安全、更稳)

2. 目标架构图

flowchart TB
U[用户] --> ECS

subgraph Aliyun["阿里云 · 控制面"]
ECS[ECS: 静态站 + nginx]
API[ECS/SAE: biof3-r-server 轻量 API<br/>鉴权 / 项目 / Copilot 网关 / 入队]
RDS[(RDS PostgreSQL<br/>全部元数据 + Copilot + 统计)]
OSS[(OSS)]
end

subgraph Dell["家里 / 或 云上大内存 · 算力面"]
W[Worker: task-queue + R 池<br/>只消费任务、写 OSS/RDS 状态]
end

ECS -->|同 VPC 内网 /api| API
API -->|内网| RDS
API --> OSS
API -->|内网或专线| W
W --> OSS
W -->|更新 analyses 状态| RDS
flowchart LR
subgraph Now["现在"]
N1[ECS 反代]
N2[Dell API+Worker]
N3[RDS P0+P1]
N4[aux P2]
N5[OSS]
end

subgraph Later["目标"]
L1[ECS 轻量 API]
L2[Dell 纯 Worker]
L3[RDS 全表]
L4[无 aux]
end

Now -.->|分阶段| Later

3. 为什么这样更合理

  1. Dell = 计算节点
    家里机器适合跑 R、占内存;不适合当「唯一 API + 唯一数据库文件」的单点。目标态里 Dell 重启只影响新任务/运行中分析,不拖垮登录与权限。

  2. RDS 一条真相源
    P2(Copilot、page_views)进 PG 后,不再维护 aux.sqlite,备份用 pg_dump / RDS 自动备份即可。

  3. ECS 与 RDS 同 VPC
    API 用 内网地址 连库,不必家里公网 IP 白名单,安全与延迟都更好。

  4. 与现有代码方向一致
    仓库里已有 db-p0/p1/p2-pggetSqliteForLegacyModules 过渡;目标态是 P2 查询全部改 PGDATABASE_URL 只在 ECS API 上。


4. 推荐分阶段路线(不一次大爆炸)

阶段做什么风险
A(已完成)RDS P0+P1;Dell API;aux 承载 P2低,已运行
BP2 表数据 迁入 RDS(或双写验证),Copilot/统计走 PG中,要测试 Copilot
CECS 上起 API 副本(内网 RDS),nginx 灰度部分 /api/r/ 到 ECS中,要改 frp/路由
DDell 去掉对外 3001,只保留 Worker + 内网任务接口中高
E删 aux、家里 IP 从 RDS 公网白名单移除,RDS 仅 VPC 内网低(收尾)

不必急着做 B~E;A 稳定运行 1~2 周 再动 B 最省心。


5. 阶段 B 的技术要点(预告)

  • 再跑一轮 migrate-sqlite-to-pg 或只导 P2 表到 RDS(page_viewscopilot_* 等已在 PG schema 里)。
  • helpers/*routes/analytics 等改为 PG 查询db-p2-pg.js 扩展),关闭 BIOF3_PG_AUX_SQLITE_PATH
  • 验证:Copilot 历史、admin 统计、埋点。

6. 阶段 C/D 的技术要点(预告)

  • ECS 与 RDS 同一地域/VPC(若 ECS 仍在杭州,RDS 也在杭州)。
  • pm2/systemd 跑 server.js在 ECS 上跑 R 容器(或仅 smoke)。
  • 任务提交:API 写 analyses + 推队列 → Dell Worker 拉取或 API 内网 POST 到 Dell。
  • nginx:location /api/r/http://127.0.0.1:3001(ECS 本机 API)而非 frp。

7. 你现在可以不动

当前 「现在」架构已经达成主要目的:用户/项目不在 Dell 磁盘上。
目标架构是 演进优化,不是「现在错了」。


8. 相关文档

AI 陪学

让 AI 陪我学这一篇

AI 会读这篇文章后给你 3-5 步学习计划, 逐步陪你学完,最后出 1-3 道题验证你掌握得怎么样。 登录后 AI 才能记住你的进度。

静态文件

离线资料下载

手册 HTML / PDF 已在后台预生成,点击后直接下载网站静态资源。