看完JDK、Spring官方架构图,我发现:大厂的图也就这样!
第一次画架构图是在项目评审会上。领导突然说:"小王,你来讲讲你这个系统的架构。"
我打开PPT,盯着空白的画布,脑子里一片混乱:要不要用3D效果?渐变色用哪个好?箭头是实线还是虚线?半小时过去了,画了删,删了画,最后憋出来一团乱麻...
后来有一天,我突然想到:大厂的技术文档里都是怎么画图的?于是我翻了一遍JDK、Spring、MySQL、Dubbo这些官网的架构图。
结果震惊了:几个矩形框+几条箭头线,就这?没渐变、没阴影、没3D,甚至有些图还很"简陋"。
那一刻我才明白:清晰 > 花哨,信息传达 > 视觉效果。
今天,我把这10个官方架构图拆解给你看,让你也能掌握专业绘图的精髓。
📊 第一部分:官方架构图深度解析
1. JDK架构图:分层架构的典范
图表来源
- 官方文档 :Oracle JDK Documentation

图表分析
图表类型:分层架构图(Layered Architecture Diagram)
核心构成元素:
-
层次矩形框:表示不同的架构层次
- 应用程序层(Application Layer)
- Java API层(Java API Layer)
- JVM层(JVM Layer)
- 操作系统层(OS Layer)
-
模块组件:每层内部的功能模块
- java.base、java.sql、java.xml等核心模块
- 类加载器、执行引擎、垃圾回收器等JVM组件
-
分隔线:明确层次边界
关键要点:
- 自上而下的层次结构,用水平分割线明确边界
- 每层职责清晰,内部可细分独立模块
- 使用不同颜色区分层次
- 简洁的矩形框,避免过度装饰
绘制步骤:
- 绘制外框 → 2. 从上到下划分层次 → 3. 填充模块名称 → 4. 区分颜色
适用工具:Draw.io、Visio、PlantUML
关键启发
JDK这么庞大复杂的系统,架构图居然这么简单:几个矩形框,用横线分开,写上模块名,加点背景色。就这?对,就这!重点是让人一眼看懂,不是炫技。
2. Spring IoC容器图:容器与对象的交互
图表来源

图表分析
图表类型:流程交互图(Process Interaction Diagram)
核心构成元素:
- 容器框:表示Spring IoC容器
- 配置元数据:XML配置文件或注解
- POJO对象:业务类
- 箭头线:表示数据流向和交互过程
- 输出结果:完全配置好的系统
图表结构:
markdown
配置元数据 ─┐
├──→ Spring容器 ──→ 可用的应用系统
POJO类 ────┘
关键要点:
- 输入-处理-输出的清晰流程,用箭头明确数据流向
- 核心组件居中,符合左输入右输出的阅读习惯
- 在关键节点添加文字标注
绘制步骤:
- 绘制中心容器 → 2. 左侧画输入源 → 3. 右侧画输出 → 4. 用箭头连接
适用工具:Lucidchart、Draw.io、Mermaid
关键启发
经典的"输入-处理-输出"模式。你会发现这个套路到处都能用:用户请求→后端处理→返回结果;原始数据→清洗转换→入库...简单却万能。
3. Spring生态图:技术栈全景展示
图表来源
- 官方网站 :Spring.io

图表分析
图表类型:功能模块图(Function Module Diagram)
核心构成元素:
- 核心模块:Spring Framework(中心位置)
- 扩展模块:Spring Boot、Spring Cloud、Spring Data等
- 应用场景标签:Web应用、微服务、批处理等
- 图标和Logo:增强视觉识别度
图表结构特点:
- 使用图标化设计,每个模块都有专属图标
- 采用卡片式布局,每个模块独立展示
- 使用统一的视觉风格和配色方案
- 层次分明,核心框架在中心
关键要点:
- 图标化设计提高识别度,卡片式布局独立展示
- 统一视觉风格和配色方案
- 核心框架位置或大小突出
绘制步骤:
- 确定布局 → 2. 设计图标 → 3. 添加描述 → 4. 统一配色
适用工具:Figma、Sketch、Canva、Draw.io
关键启发
卡片式布局看着高大上,其实就是:画几个圆角矩形,加个图标或文字,用同样的配色。不会画图标?Draw.io有免费图标库,实在不行emoji也行(📦 🔧 ☁️)。
4. Spring框架架构图:模块依赖关系
图表来源

图表分析
图表类型:模块依赖图(Module Dependency Diagram)
核心构成元素:
- 核心容器层(最底层):Core、Beans、Context、SpEL
- AOP和Aspects层:面向切面编程模块
- 数据访问层:JDBC、ORM、OXM、JMS、Transactions
- Web层:Web、WebSocket、Servlet、Portlet
- Test层:测试模块
图表结构:
scss
┌─────────────────────────────────────────┐
│ Test │
├─────────────────────────────────────────┤
│ Web (WebSocket, Servlet, Portlet) │
├─────────────────────────────────────────┤
│ AOP / Aspects / Instrumentation │
├─────────────────────────────────────────┤
│ Data Access (JDBC, ORM, OXM, JMS, TX) │
├─────────────────────────────────────────┤
│ Core Container (Beans, Core, Context) │
└─────────────────────────────────────────┘
关键要点:
- 自底向上的依赖关系,底层基础,上层依赖
- 每层明确列出模块,用水平分隔线划分
- 体现依赖倒置原则
绘制步骤:
- 从底层开始 → 2. 依次向上添加层 → 3. 列出模块 → 4. 区分颜色
适用工具:Draw.io、PlantUML、Visio
关键启发
经典的分层架构图:自底向上堆叠,每层一个矩形,粗线分隔。体现了依赖倒置原则。
5. MySQL发行计划时间线图:时间轴表达
图表来源
- 官方文档 :MySQL Release History

图表分析
图表类型:时间线图(Timeline Diagram)
核心构成元素:
- 时间轴:横向或纵向的时间线
- 版本节点:关键版本发布点
- 日期标注:具体的发布日期
- 版本信息:版本号和重要特性
- 生命周期标识:维护期、支持期等
图表结构特点:
- 横向时间轴,从左到右表示时间进程
- 使用圆点或方块标记关键版本
- 不同颜色表示不同的版本系列
- 包含版本支持周期信息
关键要点:
- 清晰的时间刻度,用圆点或方块标记关键节点
- 使用颜色区分版本系列
- 突出重大版本和里程碑事件
绘制步骤:
- 绘制时间轴 → 2. 标注时间刻度 → 3. 标记版本点 → 4. 添加信息
适用工具:Office Timeline、Excel、Draw.io、Mermaid
关键启发
时间线图的核心要素:一条轴线+关键节点+时间标注。适用于版本历史、项目里程碑、学习路线图等场景。
6. Dubbo工作原理图:调用链路与角色交互
图表来源

图表分析
图表类型:序列图 + 角色交互图(Sequence Diagram + Role Interaction Diagram)
核心构成元素:
-
角色节点:
- Provider(服务提供者)
- Consumer(服务消费者)
- Registry(注册中心)
- Monitor(监控中心)
-
连接线类型:
- 实线:同步调用
- 虚线:异步调用
- 带数字:调用顺序
-
数据流向:箭头表示调用方向
图表结构:
arduino
┌──────────┐ ┌──────────┐
│ Consumer │ │ Provider │
└─────┬────┘ └─────┬────┘
│ │
0. │ │ 1. register
subscribe ┌──┴───────┐
│ │ Registry │
2. notify └─────┬────┘
│ │
3. invoke ──────────────┘
│
4. count
│
┌────┴─────┐
│ Monitor │
└──────────┘
关键要点:
- 用数字标注调用顺序,展示完整链路
- 区分同步(实线)和异步(虚线)调用
- 明确各角色职责和位置
绘制步骤:
- 确定角色位置 → 2. 按时序添加箭头 → 3. 标注序号和动作 → 4. 区分线条样式
适用工具:PlantUML、Draw.io、WebSequenceDiagrams、Mermaid
关键启发
序列图的精髓:数字序号+箭头连接+线条样式区分(实线/虚线)。适合展示任何有时序的调用流程。
7. Dubbo多活场景架构图:区域部署架构
图表来源

图表分析
图表类型:部署架构图(Deployment Architecture Diagram)
核心构成元素:
- 地理区域:多个数据中心或可用区
- 服务集群:每个区域内的服务实例
- 网络边界:虚线框表示区域边界
- 数据同步:跨区域的数据复制
- 负载均衡器:流量分发组件
图表特点:
- 使用地理分布式布局
- 虚线框表示不同的可用区
- 双向箭头表示数据同步
- 颜色区分不同区域
关键要点:
- 用虚线框表示地理或逻辑边界,对称布局
- 双向箭头表示数据同步,数据流向明确
- 区域内可嵌套多层组件
绘制步骤:
- 绘制区域边界框 → 2. 部署服务组件 → 3. 添加同步连接线 → 4. 区分颜色
适用工具:Lucidchart、Draw.io、Cloudcraft、Diagrams.net
关键启发
部署架构图的关键:虚线框圈区域+双向箭头示同步+对称布局。适用于多环境、主从结构、分布式部署等场景。
8. Netty架构图:组件层次结构
图表来源
- 官方网站 :Netty.io

图表分析
图表类型:组件层次图(Component Hierarchy Diagram)
核心构成元素:
- 核心层:Core(Channel、EventLoop、ChannelFuture)
- 传输层:Transport(Socket、Datagram、SCTP)
- 协议层:Protocol Support(HTTP、WebSocket、SSL等)
- 编解码层:Codec(Marshalling、Protobuf等)
图表结构:
┌─────────────────────────────────────────┐
│ Protocol Support Layer │
│ HTTP | WebSocket | SSL/TLS | ... │
├─────────────────────────────────────────┤
│ Codec Framework │
│ Marshalling | Protobuf | ... │
├─────────────────────────────────────────┤
│ Transport Services Layer │
│ Socket | Datagram | HTTP Tunnel │
├─────────────────────────────────────────┤
│ Core Layer │
│ Channel | EventLoop | ChannelFuture │
└─────────────────────────────────────────┘
关键要点:
- 按功能和职责分层,自底向上,基础层在下
- 每层列出代表性组件,用线条明确边界
- 上层依赖下层
绘制步骤:
- 从核心层开始 → 2. 依次向上添加层 → 3. 列出组件 → 4. 明确边界
适用工具:Draw.io、PlantUML、Visio
关键启发
组件层次图与分层架构图相似,区别在于会详细列出每层的具体组件。适合展示框架或系统的内部结构。
9. Kafka Topic架构图:数据分区模型
图表来源

图表分析
图表类型:数据结构图(Data Structure Diagram)
核心构成元素:
- Topic:主题容器
- Partition:分区,用长条形表示
- Offset:消息偏移量,用数字标识
- Message:具体的消息数据
- Replica:副本,用虚线或不同颜色表示
图表结构:
ini
Topic: MyTopic
┌─────────────────────────────────────┐
│ Partition 0 │
│ [0][1][2][3][4][5][6][7][8] │
├─────────────────────────────────────┤
│ Partition 1 │
│ [0][1][2][3][4][5] │
├─────────────────────────────────────┤
│ Partition 2 │
│ [0][1][2][3][4][5][6][7] │
└─────────────────────────────────────┘
关键要点:
- 用长条形和格子表示分区的连续性
- 数字编号标注顺序或索引
- 多个分区并列排列
绘制步骤:
- 绘制外框 → 2. 绘制分区条 → 3. 添加格子 → 4. 标注编号
适用工具:Draw.io、Excel、PlantUML、PPT
关键启发
数据结构可视化:用格子+编号表示数据单元。适用于展示队列、数组、分区等线性数据结构。
10. RocketMQ领域模型图:概念关系图
图表来源

图表分析
图表类型:UML类图 / 概念关系图(UML Class Diagram / Concept Relationship Diagram)
核心构成元素:
-
实体类:Producer、Consumer、Broker、NameServer、Topic等
-
关系线:
- 实线箭头:引用关系
- 虚线箭头:依赖关系
- 菱形:聚合/组合关系
-
多重性标注:1、*、1..*等
-
属性和方法:类内部的字段和操作
图表结构特点:
- 使用标准UML类图符号
- 清晰展示各个概念之间的关系
- 包含多重性标注
- 层次分明的布局
关键要点:
- 使用标准UML符号,用不同线条表示不同关系
- 标注关系的多重性(一对多、多对多等)
- 合理布局减少线条交叉
绘制步骤:
- 识别核心对象 → 2. 绘制类框 → 3. 分析关系 → 4. 连接并标注
适用工具:PlantUML、StarUML、Visual Paradigm、Draw.io
关键启发
UML类图/领域模型图:方框+连接线+关系标注。新手可以简化,只画类名和关系,省略属性和方法。
🎨 第二部分:你也能画出来!
看完这10个官方案例,发现了吗?所谓"专业"的架构图,也就那样。现在我把这些套路总结出来,你拿走直接用。
先搞清楚:我要画什么类型的图?
不要上来就画! 先问自己一个问题:我想表达什么?
快速决策表
你想表达... | 用什么图 | 参考案例 | 核心元素 |
---|---|---|---|
系统分了几层 | 分层架构图 | JDK、Spring、Netty | 矩形堆叠+分隔线 |
数据怎么流动 | 流程图 | Spring IoC | 框+箭头 |
服务怎么调用 | 序列图 | Dubbo调用链路 | 数字标号+箭头 |
有哪些模块 | 模块图 | Spring生态 | 卡片/圆角矩形 |
怎么部署的 | 部署图 | Dubbo多活 | 虚线框+双向箭头 |
数据结构是啥 | 数据图 | Kafka分区 | 小格子+编号 |
版本怎么迭代 | 时间线图 | MySQL历史 | 横线+点 |
概念有啥关系 | 关系图 | RocketMQ模型 | 框+连线 |
看到了吗? 8种场景,就这8种常用图。选对了类型,成功了一半!
三个让你的图瞬间专业的秘诀
秘诀1:越简单越好
- 避免:花哨渐变、阴影、3D效果、一图多义、过多颜色
- 推荐:基础图形(矩形、圆形、箭头)、一图一主题、2-3种颜色
秘诀2:保持一致
- 避免:同类元素不同形状、箭头方向混乱、字体大小不一
- 推荐:统一形状(如数据库都用圆柱体)、统一方向、字体层次分明
秘诀3:留白很重要
- 避免:元素拥挤、线条密集、无间距
- 推荐:元素间留空隙、合理分组、适当放大
工具推荐:就这3个够用了!
选择恐惧症? 别纠结了,我只推荐3个,适合不同场景:
1. Draw.io(推荐新手!)⭐⭐⭐⭐⭐
为什么推荐?
- 完全免费,功能强大
- 不用注册,打开就能用
- 支持离线,数据保存在本地
- 5分钟上手,拖拽就能画
适合场景:
- 日常画图(80%的场景都够用)
- 技术文档配图
- 项目汇报
上手秘籍:
- 打开 app.diagrams.net/
- 选择"创建新图表"
- 从左侧拖一个矩形到画布
- 恭喜,你已经开始画图了!
小技巧:
- 按住
Ctrl+D
快速复制 - 用
Ctrl+G
组合元素 - 搜索"AWS"、"Azure"找云服务图标
2. PlantUML(程序员专属)⭐⭐⭐⭐
为什么推荐?
- 用代码画图,适合程序员思维
- 可以放在Git里版本管理
- 自动排版,不用手动调整
- Markdown原生支持
适合场景:
- 技术文档(README、Wiki)
- 代码注释中的架构图
- 需要版本控制的图
上手秘籍:
less
@startuml
' 画一个简单的序列图
Alice -> Bob: 你好
Bob -> Alice: 你好啊
@enduml
在线体验 :www.plantuml.com/plantuml/
3. PowerPoint / Keynote(别小看它!)⭐⭐⭐⭐
为什么推荐?
- 你已经会用了!
- 画完直接用在汇报PPT里
- 自带很多图标和模板
- 操作最顺手
适合场景:
- 项目汇报
- 快速画草图
- 对外展示
上手秘籍:
- 插入 → 形状 → 选矩形
- 插入 → 形状 → 选箭头
- 调整一下,完成!
小技巧:
- 用
SmartArt
快速生成常见图(流程、层次、循环) Alt+拖动
快速复制Ctrl+Shift+G
取消组合
我该选哪个?一分钟决策
你的需求 | 推荐工具 | 理由 |
---|---|---|
我是新手,想快速开始 | Draw.io | 免费、简单、够用 |
我要画技术文档 | PlantUML | 代码化,好维护 |
我要做项目汇报 | PPT/Keynote | 画完直接用 |
我要团队协作 | Draw.io | 可以存云端(Google Drive等) |
我就想画个草图 | PPT/纸笔 | 最快! |
记住:工具不重要,能画出来才重要!先用PPT画起来,再慢慢学其他工具。
三步画图法
第1步:明确目标(30秒)
- 系统分层 → 矩形堆叠
- 数据流程 → 框+箭头
- 服务调用 → 序号+箭头
第2步:选择图形(1分钟)
万能组合:矩形(组件/模块)+ 箭头(调用/流向)+ 线条(边界/分层)
第3步:画完收手(5分钟)
聚焦核心:画出关键组件、标清主要流程、连上重要关系。
不必纠结:颜色、阴影、字体等细节。
记住:清晰 > 美观,完成 > 完美!
常见问题
Q1:我画的图不够美观?
重点是能说清楚问题,不是参加设计比赛。官网的图也很朴素。
Q2:需要学习UML吗?
大部分场景不需要。除非做架构师或公司有明确要求,简化版的图完全够用。
Q3:我的图和别人不一样?
没有标准答案!只要能清晰表达即可。同样是分层图,JDK、Spring、Netty的画法也各不相同。
Q4:应该画多详细?
看受众:给领导汇报画核心流程,给团队讲解画主要组件,技术文档可分多张图详细说明。
Q5:画图需要多长时间?
草图5分钟,正式图30分钟,精美图1-2小时。90%的场景30分钟足够。
🎉 现在就开始
看到这里,你应该明白了:大厂的架构图没那么神秘,无非是基础图形+清晰逻辑。
别光看,动手试试(10分钟):
- 打开PPT或Draw.io,画个简单流程图:输入 → 处理 → 输出
- 或者画画你项目的分层架构,就几个矩形框堆起来
然后呢?
- 每周画一张不同类型的图,一个月后你就熟练了
- 遇到问题就回来看看这篇文章的快速参考卡片
- 别追求完美,能说清楚就行
记住:清晰 > 美观,完成 > 完美。Spring、JDK他们也是这么画的,凭什么你不行?
📌 快速参考卡片(保存这张图)
lua
┌─────────────────────────────────────────────────────┐
│ 架构图绘制快速参考卡片 │
├─────────────────────────────────────────────────────┤
│ │
│ 想表达什么? 用什么图? 画什么? │
│ ───────────────────────────────────────────── │
│ 系统分层 分层架构图 □ 堆叠 │
│ 数据流动 流程图 □ → □ │
│ 服务调用 序列图 1→2→3 │
│ 模块列表 模块图 卡片 │
│ 部署情况 部署图 虚线框 │
│ 数据结构 数据图 格子 │
│ 版本历史 时间线图 ─●─●─ │
│ 概念关系 关系图 □──□ │
│ │
├─────────────────────────────────────────────────────┤
│ 核心秘诀: │
│ 1. 越简单越好(矩形+箭头就够了) │
│ 2. 保持一致(同类东西用同样画法) │
│ 3. 留白很重要(别挤在一起) │
│ │
├─────────────────────────────────────────────────────┤
│ 推荐工具: │
│ • Draw.io(免费、简单) │
│ • PlantUML(代码化) │
│ • PPT/Keynote(最熟悉的) │
│ │
├─────────────────────────────────────────────────────┤
│ 三步画图法: │
│ 1. 明确目标(30秒) │
│ 2. 选简单图形(1分钟) │
│ 3. 画完收手(5分钟) │
│ │
└─────────────────────────────────────────────────────┘
把这张卡片保存下来,下次画图时看一眼!
最后说两句:
画架构图这事,真没那么难。我当年被它吓唬住,觉得自己画不出"专业"的图,结果浪费了好多时间纠结。
后来发现,Spring、JDK这些大厂的图也就那样。矩形、箭头、清晰表达,就完了。
所以别想太多,打开工具,画一个矩形,你就已经开始了。
每个架构师,都是从第一个矩形开始的。
本文使用 markdown.com.cn 排版