Appearance
架构基本功
架构不是画图。 是在复杂系统里持续回答三个问题: 状态放哪,边界怎么切,故障来了谁负责收口。
这里不写空泛方法论,也不写“看起来懂很多”的名词综述。
这里只保留一类内容:
- 能解释系统为什么会失控。
- 能说明工程边界为什么要那样划。
- 能落到代码、链路、部署和运行现场。
这页解决什么
如果你是后端工程师,准备往架构方向走,真正欠缺的通常不是某个框架 API,而是下面这些判断力:
- 一个问题到底是业务问题、数据问题,还是系统边界问题。
- 一条链路失真时,应该先查线程、线程池、RPC、消息还是日志。
- 一套方案看起来能跑,为什么一上生产就开始扩散复杂度。
- 一次云上部署看似只是“把命令跑通”,为什么最后决定成败的是目录、网络、权限和恢复能力。
这就是“基本功”的范围。
核心主题
1. 上下文治理
系统一旦跨线程、跨线程池、跨服务调用,上下文就开始丢失、串线、污染。
很多线上疑难问题表面上是“偶发”,本质上是上下文模型没有设计完整:
- 用户身份丢了。
- 租户信息串了。
- Trace 断了。
- 异步任务拿到了旧数据。
这篇文章解决的是:
ThreadLocal在单线程里到底解决什么。TTL为什么是线程池场景的必要补丁。SkyWalking怎样把链路从 JVM 内部扩展到分布式系统。- 为什么上下文治理不是技巧,而是系统一致性的一部分。
2. 云上训练与工程落地
很多所谓“AI 工程实践”,最后都被写成几条命令。
但真正影响结果的,通常不是命令本身,而是命令背后的工程结构:
- 数据放哪里。
- 计算节点是否可重建。
- GPU 驱动是否真正就绪。
- 训练目录是否可迁移。
- 配置文件是否准确反映真实数据根路径。
腾讯云 COS + 竞价 GPU 实例训练 YOLOv8s 全流程记录
这篇记录解决的是:
- 大体积训练集为什么应该和计算节点分离。
- 竞价 GPU 实例该如何按“随时可回收”思路规划目录和流程。
data.yaml这类小配置为什么常常是训练失败的真正原因。- 一次起训过程里,哪些检查是必要动作,哪些只是表面热闹。
架构师真正要练的,不是“知道”,而是“收口”
工程里最贵的能力,不是你能讲多少概念。
而是系统开始混乱时,你能不能迅速把问题收口到正确层级。
一个成熟的架构判断,通常都会回到下面四层:
| 层级 | 要回答的问题 | 常见失控表现 |
|---|---|---|
| 状态层 | 数据在哪里,谁有最终写权 | 多写源、状态漂移、脏读 |
| 线程层 | 上下文如何在并发中传递 | 串数据、丢 Trace、异步失真 |
| 服务层 | 边界怎么切,责任怎么分 | RPC 膨胀、回滚困难、依赖耦合 |
| 运行层 | 部署、日志、恢复如何闭环 | 环境漂移、不可重建、故障放大 |
这四层没想清楚,技术选型越多,系统只会越花。
写作标准
这个栏目后续只接受三类内容进入:
- 解释一个真实工程问题的底层机制。
- 给出清晰的边界判断,而不是泛泛而谈。
- 能落到代码、配置、部署或运行现场验证。
如果一篇内容只是“概念介绍”“经验鸡汤”或者“工具安利”,它不应该放在这里。
适合谁读
- 正在从高级开发往架构职责过渡的 Java 工程师。
- 已经开始负责系统边界、稳定性和治理问题的后端负责人。
- 想把 AI、云资源、分布式系统这些话题放回工程语境里理解的人。
一句话定义这个栏目
它不是知识仓库。
它是一个架构师处理复杂度的现场笔记。