前后端分离架构图怎么画
前后端分离是当下 Web 项目的默认架构。这份指南讲清楚这种架构图的核心节点(客户端 / BFF / 网关 / 服务 / DB)、常见变体,并附 AI 生成 prompt 模板。
前后端分离架构图怎么画
前后端分离架构图应从左到右画出客户端、CDN / 网关(或 BFF)、业务服务与数据层,并用实线 / 虚线区分同步调用与消息异步。
「前后端分离」是现代 Web 项目的事实标准:前端跑在浏览器 / 小程序 / App,后端提供 RESTful / GraphQL API,中间通过 BFF(Backend For Frontend)或网关衔接。一张清楚的架构图能让产品、前端、后端、运维快速对齐「请求从哪进来、静态资源谁托管、鉴权在哪做」。用 构图AI 可一句话生成手绘风架构图;基于 Excalidraw 可编辑,支持导出 PNG / SVG / .excalidraw。产品内含 12 种图类型技能与约 25 个示例,可直接改造前后端与微服务相关模板。
何时需要画
- 项目启动:技术方案评审,定下整体结构。
- 新人 onboarding:解释「这个请求从哪进来、走哪些服务」。
- 性能优化:找出链路上的瓶颈(如多次串行调用、无缓存)。
- 故障复盘:定位问题发生在接入层、服务层还是数据层。
- 多端扩展:新增小程序 / App 时,画清共享与分端部分。
核心节点
典型前后端分离架构包含:
- 客户端(Client):Web / 小程序 / App。
- CDN:托管前端静态资源。
- BFF / 网关:聚合后端接口、做鉴权、限流。
- 业务服务:用户、订单、商品等服务(可单体也可微服务)。
- 缓存(Redis):热点数据 / 会话。
- 数据库(DB):主从 / 分库分表。
- 消息队列(MQ):异步任务 / 事件。
- 第三方服务:支付、短信、对象存储。
节点可以裁剪:没有 MQ 就不要硬画;没有 BFF 就写清「网关直连服务」。
常见结构
| 结构 | 路径概要 | 适合 |
|---|---|---|
| 简单分离 | Web → API Server → DB | 早期项目、团队小 |
| 加 BFF | 客户端 → BFF → 多服务 | 多端聚合、接口裁剪 |
| GraphQL | 客户端 → GraphQL → 多服务 | 前端按需取字段 |
| 多端 BFF | Web / 小程序 / App 各 BFF | 端差异大、发布节奏不同 |
画图要点
- 从左到右:客户端在左、DB 在右,符合阅读习惯。
- 横向分层:接入层 / 服务层 / 数据层,用浅色背景区分。
- 同步实线、异步虚线:MQ 调用用虚线箭头。
- 关键标注:标出协议(HTTP / gRPC / WebSocket)和是否鉴权。
- 别画部署细节:K8s Pod 数量留给部署图;本图聚焦逻辑分层。
手动画 vs AI 生成
前后端分离架构图节点不一定多,但层级要对齐,手动调框很费时。
| 方式 | 耗时 | 适合 |
|---|---|---|
| PPT / draw.io | 20–40 分钟 | 对外终稿 |
| 构图AI | 约 5–10 秒草稿 | 评审、文档、onboarding |
AI 生成特别适合评审草稿和文档配图。登录后 1 次免费额度可验证效果;VIP 不限制 AI 画图,方便按评审意见多次迭代分层。
画一张前后端分离的 Web 应用架构图,手绘风。
分层:
- 客户端层:Web 浏览器、小程序、App。
- 接入层:CDN(托管静态资源)、API 网关(含鉴权、限流)。
- 服务层:用户服务、订单服务、商品服务(微服务,相互通过 gRPC 调用)。
- 数据层:Redis 缓存、MySQL 主从、Kafka 消息队列。
- 第三方:支付宝、阿里云 OSS。
流程:客户端 → CDN 加载页面 → 调用 API 网关 → 鉴权 → 路由到对应服务 → 读写数据。
异步:订单服务发消息到 Kafka,库存服务消费。
行业变体
- SaaS 多租户:增加「租户隔离」节点,详见 SaaS 多租户示例。
- 小程序:客户端换成小程序 + 微信开放接口,详见 微信登录示例。
- 中台:业务能力下沉到中台,前台调用中台 API,图上用「前台 / 中台 / 后台」三带分区。
- 边缘渲染:增加 SSR / 边缘节点,注意与 CDN 的关系标注。
生成后在画布上优先做三件事:统一服务命名、删掉演示用占位框、给异步链路加「via Kafka」之类短标注。导出时 PNG 进飞书 / Notion,SVG 进幻灯片,.excalidraw 进团队网盘。
评审检查清单
一张前后端分离架构图是否「能上会」,可以用下面清单快速自检:
- 静态资源与 API 请求是否分路径画清(CDN vs 网关)?
- 鉴权发生在网关、BFF 还是各服务?图上能否一眼看出?
- 读多写少的热点有没有 Redis?没有的话是否故意省略并加了注释?
- 第三方回调(支付、短信)从哪边进入?有没有画出公网入口?
- 同步链路与 MQ 异步是否用线型区分?
若以上任一题答不上来,与其美化配色,不如回到 prompt 补约束再生成一版。架构图的读者经常包含前端与运维:前端关心「首屏资源从哪来」,运维关心「流量从哪进、依赖谁」。两端诉求都照顾到,这张图才算完成沟通任务。更细的后端拆分见 微服务架构指南;登录与 Token 细节则链到 JWT 登录架构,避免在一张总图上画爆炸。
还有一个实用技巧:为「本地开发拓扑」单独保留一版简化图——去掉 CDN、多机房与部分第三方,只保留浏览器、本地 API、本地 DB。新人配环境时看这版,上线评审时看完整版,两套图都用同一套服务命名,切换成本最低。AI 生成简化版时加一句「省略 CDN 与第三方,仅保留本地主链路」即可。若存在 GraphQL 与 REST 并存,请在接入层标注各自入口,避免读者以为所有客户端都走同一协议。文档迭代时把架构图版本号与发布版本对齐,回看事故会轻松很多。移动端若走独立 BFF,请在图上画清「Web BFF / App BFF」是否共享鉴权中间件;共享与否直接影响排障时该查哪份日志。完成这些标注后,这张前后端分离图才算真正可运维。导出前再用一分钟扫一眼左右阅读顺序,能避免评审现场临时改布局。
相关指南
常见问题
前后端分离架构图里 BFF 必须画吗?+
没有 BFF 的简单项目可以省略,直接画「客户端 → API 服务 → DB」。若已有 BFF / 多端聚合层,则强烈建议画出,否则评审时看不清鉴权与接口聚合发生在哪一层。
架构图要画到服务级还是只到层?+
对外或高管沟通画到层(客户端 / 接入 / 服务 / 数据)即可;团队内部评审建议画到关键服务名,并标注同步 / 异步调用。
能不能把时序和架构画在同一张前后端分离图里?+
不建议。架构图回答「有哪些组件、怎么分层」;时序图回答「一次请求谁先谁后」。两张图互补,硬合并会导致箭头过密。
小程序、App、Web 多端怎么画才不乱?+
客户端层并排列出多端,接入层画共享网关或分端 BFF;数据层只画一份。用颜色区分「端」与「服务」,避免每个端复制整套后端。
相关指南
- JWT 登录架构JWT + Redis 登录架构怎么画?这篇指南梳理核心元素、常见结构、手动画图与 AI 生成的差异,并附 prompt 模板,帮助你在架构评审和文档中快速画出可用的 JWT 登录架构图。
- AI 画技术图:Excalidraw vs Mermaid vs draw.io 对比用 AI 画技术图怎么选工具?这篇横向对比 Excalidraw / Mermaid / draw.io 三种主流方案的风格、效率、协作与可读性,并给出在什么场景下用构图AI 最划算。
- DevOps CI/CD 流水线怎么画CI/CD 流水线图怎么画才清楚?这份指南拆解 DevOps 持续交付链路的核心阶段、常见结构,并给出可直接复制的 AI 生成 prompt 模板。