上线后的第三周,系统第一次迎来真正意义上的压力测试。
不是内部压测,也不是预估模型。
而是一场突如其来的活动。
市场部在周一早会上宣布——
“阅读器将接入一场联合推广,预计用户量会有明显增长。”
没有具体数字。
但林晨在听到“联合推广”的那一刻,心里已经有了判断。
这种词,通常意味着一件事——
流量不可控。****
1. 风暴前的安静
林晨回到工位,没有立刻写代码。
他打开监控面板。
-
首屏渲染:1.9s
-
接口平均响应:280ms
-
错误率:0.2%
一切看起来都正常。
甚至可以说,很健康。
但他盯着那条曲线看了很久。
因为他知道——
系统最危险的时候,不是在出问题的时候,而是在“看起来没问题”的时候。****
他打开项目代码,翻到之前做的架构拆分。
当初为了避免性能问题扩大,他做了一次很克制的分层:
-
主阅读区域(核心渲染)
-
设置系统(独立响应)
-
阅读行为(滚动、进度)
不是复杂架构,
但足够“分开”。
当时他只是为了性能。
现在,这个决定开始显现另一种价值——
可控性。****
2. 第一个信号
活动开始后的第十五分钟,问题出现了。
不是崩溃。
只是群里一条普通的消息:
“阅读器偶尔加载有点慢。”
没有截图,没有抱怨。
但林晨已经打开了控制台。
他进入线上环境,加载一个长章节。
滚动。
加载。
停顿了一下。
不是明显卡顿,而是那种——
“不该慢,但确实慢了”的感觉。****
他打开 Performance 面板。
录制。
滚动。
停止。
时间线展开。 没有明显的红色警告。
但有一段渲染时间,被拉长了。
问题不复杂。
// 数据请求后触发整体渲染
chapterContent.value = newData
看似简单的一行代码。
但在当前结构下,这意味着:
-
整个章节 DOM 更新
-
样式重新计算
-
布局重排
如果只是一次,不是问题。
但当请求变频繁,问题就开始积累。
林晨靠在椅子上,低声说了一句:
“开始了。”
3. 压力真正到来
傍晚六点,流量明显上升。
接口开始出现波动。
有请求超过 800ms。
前端没有报错,但体验开始变差。
群里开始有人说:
“是不是服务器问题?”
林晨没有回。
他先做了一件更直接的事——
限制前端影响范围。****
他快速改了一段逻辑。
把“强依赖数据渲染”改成“可降级显示”。
onMounted(async () => {
try {
const data = await fetchChapter()
chapterContent.value = data
} catch (e) {
chapterContent.value = cachedContent.value
}
})
然后,他加了一层保护:
// 避免重复渲染
if (!isSameChapter(newData, oldData)) {
chapterContent.value = newData
}
这不是优化。
这是在做一件更底层的事情:
减少系统被触发的次数。****
4. 第二条线
就在他改代码的时候,苏雨在群里发了一条消息:
“推荐模块先降级,优先保证阅读体验。”
这条消息很关键。
因为它意味着——
产品开始主动为系统让路。****
林晨看了一眼,没有说话。
但他知道,这比任何技术优化都更重要。
5. 稳住
晚上九点。
流量达到峰值。
没有崩。
也没有完全流畅。
但系统稳住了。
错误率从 0.2% 上升到 0.9%,
然后缓慢回落。
没有扩散。
没有失控。
办公室只剩几个人。
林晨走到会议室,苏雨已经在那里。
屏幕上是监控曲线。
两个人都没说话。
“你刚刚降级推荐模块,是提前预判的吗?”林晨问。
“不是。”苏雨摇头。
“是看到趋势之后的选择。”
她看着那条曲线。
“用户可以晚一点看到推荐,但不能读书的时候卡。”
林晨点了点头。
这是一个很产品的判断。
但也是一个系统级判断。
6. 第一次“对齐”
“你之前说的那句话,”苏雨忽然开口。
“哪句?”
“系统不是怕问题,是怕失控。”
林晨愣了一下。
他没想到她记住了。
“今天算是第一次验证吧。”她说。
“还不算。”林晨摇头。
“这只是边缘。”
他停了一下。
“真正的压力,还没来。”
苏雨笑了笑。
“那至少,我们没有被第一波打乱。”
7. 架构的意义
回到工位,林晨打开项目文档。
他在原本的架构说明后面,补了一段话:
### 为什么要分层?
不是为了优雅,而是为了在压力下可以选择“放弃什么”。
他又加了一句: 系统不是要完美运行,而是要在不完美时依然可控。 这不是写给现在的。
是写给未来的。
8. 合流
下班前,苏雨发来一条消息:
“今天如果没有前面那几次讨论,可能就扛不住了。”
林晨看着这句话,想了几秒。
回了一句:
“如果没有你那次让步,我们也不会提前准备。”
这一次,没有争论。
也没有谁证明了谁是对的。
他们只是第一次,在同一个方向上发力。
夜深。
灯一盏盏熄灭。
林晨关掉电脑,走出办公室。
苏雨刚好也出来。
两人并肩走向电梯。
没有刻意,也没有避开。
“接下来呢?”苏雨问。
林晨看着电梯门上的倒影。
“接下来,不只是把功能做好。”
他顿了一下。
“是把这个东西,做成一个真正能扛住变化的系统。”
电梯门缓缓关上。
这一章结束的不是一次压力。
而是一个阶段。
他们开始从“完成项目”,走向“理解系统”。