今日目标:在进入最后的 48 小时冲刺前,我们需要把前四周零散的知识点缝合在一起。今天我们要学习如何进行 “架构设计”,并为明天的毕业大项目做好本地环境和心理建设。
学习内容 (30 mins)
在写任何代码之前,先画图。架构图是沟通的语言。毕业设计架构:Hybrid-Monitor (15 mins)
毕业设计架构:Hybrid-Monitor (15 mins)
我们要构建一个微缩版的企业级监控系统。
- DB 层 (SQL): 存储任务配置、采集到的信号结果、用户信息。这是数据的归宿。
- Control Plane (Python/FastAPI):
- 作为“大脑”。
- 负责处理复杂的业务逻辑(如鉴权、数据聚合)。
- 对外提供 RESTful API。
- Data Plane (Go):
- 作为“执行器” (Agent)。
- 部署在边缘节点,负责高频采集数据。
- 与大脑通讯,上报数据。
- Infrastructure (Shell/Docker):
- 负责一键拉起所有环境。
为什么采用这种混合架构? (15 mins)
为什么采用这种混合架构? (15 mins)
思考题:全用 Python 或全用 Go 行不行?
- 全 Python: Agent 端内存占用大,部署依赖多。如果部署在几千台机器上,资源浪费严重。
- 全 Go: Web 开发虽然可以,但 ORM 和 Web 框架不如 Python 的生态(SQLAlchemy/FastAPI)那么开发迅速、灵活。
- 混合架构:
- Python 处理 低频、复杂 的控制逻辑。
- Go 处理 高频、简单 的计算逻辑。
- 取长补短,这是现代架构的精髓。
任务清单 (90 mins)
今天没有重代码任务,重点是自测与环境准备。脑力体操 (30 mins)
设计挑战:数据应该怎么流?
情景:如果 Agent 采集网络断了,数据该怎么办?选择 A: 丢弃数据。
选择 B: 缓存在本地内存,连上后再发。
选择 C: 写入本地文件,连上后再发。
- 分析:
- 对于监控系统,实时性第一。如果是昨天的 CPU 负载数据现在才发过来,价值很低。通常选择 A (丢弃) 或 B (有限内存缓存)。
- 如果是 计费日志,则必须选择 C (本地持久化缓冲),绝不能丢。
- 结论: 架构设计没有绝对的对错,只有 Trade-off (通过权衡做取舍)。
今日产出物
~/final-project/目录结构- 准备好的开发环境
明日预告
回到目录
查看完整进度
项目启动: 需求分析
Day 29 | 综合项目需求分析