Appearance
后台 / API / 数据层
一句话定位
这一模块不再把 API、数据库、缓存、文件链路当成后端杂项清单,而是按接口契约 → 一致性 → 数据存储 → 文件媒体链路 → 项目案例建立一条工程主线。
你会在这里解决什么判断
- 为什么“接口能调通”不等于接口设计正确?
- 一句话答:能调通只验证了通路;幂等、重试、一致性、契约稳定性才是正确性,否则高峰或重试时就会出问题。
- 幂等、重试、去重、最终一致性应该分别在哪一层落地?
- 一句话答:幂等键在业务层 / 网关,重试客户端与服务端配合,去重在中台 / 数据库,最终一致性靠消息 / 补偿在业务层收敛。
- MySQL / PostgreSQL / MongoDB / Redis 各适合承载什么数据与读写模式?
- 一句话答:MySQL 关系事务,PostgreSQL 强类型 + JSON 扩展,MongoDB 文档灵活写入,Redis 缓存 / 热数据 / 计数器;按一致性要求与写入模式选。
- 文件上传/下载/校验/原子更新为什么经常跨前后端一起出问题?
- 一句话答:链路横跨客户端网络、服务端存储、CDN / 回源、校验与原子替换,任一段不一致就会整体失败。
- 移动端下载、媒体处理、回调通知、SSE / WebSocket 在架构上怎么配合?
- 一句话答:下载走可恢复任务,媒体处理放服务端 / 原生,回调通知统一回执,SSE / WebSocket 负责实时推送;职责分离再由服务端聚合。
先建立哪一层心智
建议先把后端与数据问题拆成五层:
- 接口契约层:REST、分页、错误码、回调/SSE/WebSocket
- 一致性控制层:幂等、重试、去重、最终一致性
- 数据存储层:MySQL / PostgreSQL / MongoDB / Redis
- 文件媒体链路层:断点续传、分片上传、压缩处理、原子更新、大文件下载
- 项目案例层:把上面四层放回真实链路里看
推荐阅读顺序
第 1 步:先看 API 契约层
- API 幂等 / 重试 / 去重 / 最终一致性
- 作用:先把“接口如何设计才不会一重试就出事故”建立起来。
第 2 步:再看数据库与缓存
- 数据库与缓存:MySQL / PostgreSQL / MongoDB / Redis
- 作用:把不同存储模型放回读写模式、事务边界和缓存一致性语境里。
第 3 步:再看文件与媒体链路
- 文件与媒体链路:上传 / 下载 / 压缩 / 原子更新
- 作用:把大文件、媒体处理、校验与原子更新串成一条真实链路。
第 4 步:最后回到项目案例
- 项目案例:
download_service.dart的下载 / 校验 / 原子更新 / 失败恢复- 作用:把 API、缓存、文件链路、端上更新过程放回同一条业务链路。
模块知识树
01. 接口契约层
总览
专题展开
- REST API 设计约定:版本 / 错误码 / 分页 / 契约
- 认证授权:Token / JWT / Refresh / OAuth2
- 移动端弱网与长连接治理:WebSocket / gRPC / 智能心跳与 WAL 离线
- 移动端一键登录工程化:运营商能力 / 原生 SDK / 生命周期 / 回退策略
- HTTPDNS / 阿里 DNS 移动端工程化:Host/SNI/TLS 边界与回退策略
这组重点解决:API 不是只看字段对不对,而是要能承受重试、失败恢复、异步回流与跨端协同。
02. 数据存储层
总览
专题展开
这组重点解决:不同存储不是替代关系,而是事务能力、查询模型、延迟特征和一致性策略不同。
03. 文件与媒体链路层
总览
这组重点解决:文件链路不是单点上传/下载,而是校验、续传、处理、落盘、更新的一整条流水线。
04. 项目案例层
总览
当前缺口
- 已补:download_service 案例闭环,覆盖 Flutter 状态机、共享校验器、Android 原子晋升
- 仍可继续扩展:真实 Range 续传、磁盘空间不足、解压失败巡检
这组重点解决:把 API 契约、一致性、存储和文件链路落回真实业务实现,而不是停留在通用概念。
对应 labs 入口
当前已落地六个可运行实验,其余仍在计划补齐:
- auth-token-simulation —— JWT 结构 + 双 Token + 并发 401 排队(纯 Java 可跑)
- database-cache-simulation —— SQLite WAL + 三级缓存(纯 Java 可跑)
- cache-aside-simulation —— Cache-Aside 穿透/击穿/雪崩/双写(纯 Java 可跑)
- download-service-update-case —— Flutter 更新状态机:metadata / download / verify / promote
- resource-package-verifier —— 共享校验器:size / hash / manifest 三层验证
- atomic-resource-promotion —— Android 原子晋升:staging → active 与 backup 回滚
- mobile-one-tap-login —— 一键登录状态机、切网失败、用户信息收敛与短信验证码兜底(Flutter host)
- flutter-httpdns-override —— HTTPDNS 初始化、预解析、Dio/HttpClient override、SNI 与回退策略(Flutter host)
labs/go/backend-data/、labs/node/backend-data/、labs/shared/backend-data/
备注
这个模块现在已经从“后端知识点清单”收口成一条工程主线。下一步最值得补的是项目案例页,把下载、校验、缓存、更新替换、错误恢复真正串起来。