9.5 动态加速

一句话

动态内容不能缓存,所以动态加速优化的不是 “内容”,而是 路径:就近接入、连接复用、协议优化、回源走骨干——它把 “每次都要跨半个中国握手” 变成 “在离用户 20ms 的节点上复用一条已建好的连接”。

动态请求的时间都花在哪

阶段 典型耗时(跨境) 可优化点
DNS + TCP + TLS 建连 300–600ms(3 个 RTT 起) 就近接入、会话复用、TLS 1.3
请求上行 100–200ms(含丢包重传) 骨干网回源、减少往返
源站处理 20–200ms 不是 CDN 的活
响应下行 100–200ms 压缩、HTTP/2 多路复用

结论:跨境访问的主要成本是 “建连 + 往返次数”,不是带宽。动态加速的收益也主要来自这两项。

六种手段,按性价比排

手段 做什么 收益量级 代价
就近接入 用户连到最近的 PoP 省 100–300ms 需要节点覆盖
连接复用 边缘到源站保持长连接池,请求不再逐次握手 省 1–2 个 RTT/请求 源站要能承受长连接
TLS 1.3 + 会话复用 1-RTT,恢复会话可 0-RTT 省 1 个 RTT 0-RTT 只限幂等请求(见 8.6 TLS 握手、证书与 mTLS)
协议升级(HTTP/2、HTTP/3) 多路复用、减少队头阻塞 高并发下明显 需要端到端支持
路由优化(专线/骨干) 回源走高质量链路,绕开公网拥塞 丢包高时收益最大 成本高,按需购买
压缩与合并 gzip/br + 合并小请求 减少字节数与请求数 CPU;合并要防过度耦合

一条经验:先测 “建连时间 vs 源站处理时间” 的占比。建连占大头 → 做连接复用与就近接入;源站占大头 → 动态加速帮不上,先优化应用。

与 “专线 / SD-WAN” 的区别

方案 优化的是 适合 成本
动态加速(CDN) 公网路径 + 边缘接入 面向海量公网用户 按流量/请求
专线 / SD-WAN 固定两点之间的链路 总部与云上 VPC、跨地域内网 按月带宽,贵
全站加速(含静态) 静态缓存 + 动态链路 混合站点 按流量

三者不互斥:面向公网用户用 CDN 动态加速,内部系统互联用专线。

指标:只看 TTFB 会误判

指标 含义 目标
建连时间(DNS+TCP+TLS) 动态加速最该压的 复用后接近 0
TTFB 到首字节 跨境 < 200ms 已属良好
回源 RTT / 重传率 边缘到源站链路质量 重传 < 0.1%
尾延迟 P99 丢包与拥塞的体感 与 P50 差距越小越好

只看平均值会被 “一半请求走了缓存、一半没走” 稀释,动态加速必须按 P95/P99 + 地域 + 运营商 分维度看。

反模式

反模式 后果
把动态接口也缓存来 “提速” 越权泄露或脏数据(见 9.3 缓存键设计)
只买 “加速” 不看建连占比 花在优化错误的地方
回源不做连接池 每个请求都重连,加速收益被抵消
对写请求开 0-RTT 重放导致重复提交
忽略 Cookie/鉴权透传 加速后登录态丢失,表现为 “随机掉线”
用平均 TTFB 验收 掩盖长尾;用户投诉的正是 P99

三条铁律

🔑 动态加速买的是 “路径与连接”,不是 “缓存”;不缓存是它的前提,不是缺陷。

🔑 先压建连,再压往返;建连不复用,其他优化都是小数。

🔑 验收看 P95/P99 与地域维度,平均值会骗人。

自检

Q1 跨境 API 的 TTFB 是 700ms,怎么判断该不该买动态加速?

▸ 答案:先拆时间:建连(DNS+TCP+TLS)占多少、回源往返占多少、源站处理占多少。若建连 + 往返占 70% 以上,动态加速(就近接入 + 连接复用 + 骨干回源)通常能把 TTFB 压到 200–300ms;若源站处理占大头,加速只能省下小头,应先优化应用与数据库。

Q2 为什么 “回源连接池” 是动态加速里最容易被忽略的一环?

▸ 答案:因为每个动态请求都要回源一次,如果边缘与源站之间每次都新建连接,就要重复付 TCP + TLS 的 2–3 个 RTT,跨境场景下每次多 300ms 以上,加速收益被抵消。保持长连接池(并配健康检查与超时)才能把 “省下的建连” 真正留住。

Q3 动态加速能替代专线吗?

▸ 答案:不能,两者优化对象不同。动态加速优化 “海量公网用户到边缘” 的路径,出口仍是公网;专线优化 “两个固定点之间” 的链路质量(低丢包、可预测延迟),适合总部-云、跨地域内网。对外服务用 CDN,内部互联用专线,是常见组合。

Q4 上了动态加速,为什么 P99 反而变差?

▸ 答案:常见三种原因:① 多了一跳,边缘到源站链路质量差时尾延迟放大;② 回源连接池过小,高并发时排队;③ 边缘节点回源绕路(调度就近但回源不就近)。诊断看 “边缘到源站的 RTT 分地域” 与 “回源队列等待时间”,而不是只看整体 TTFB。

Q5 什么情况下不该用动态加速?

▸ 答案:用户与源站本来就在同一区域(收益 < 20ms)、或流量极小(固定成本摊不平)、或数据合规要求请求不得经过第三方节点。判断依据仍是 “建连与往返在总耗时中的占比”,而不是 “有没有这个产品”。

跨篇相关:缓存命中与回源的原理见 9.1 边缘缓存原理;回源链路与限速见 9.2 回源策略与回源率;TLS 握手与复用见 8.6 TLS 握手、证书与 mTLS;HTTP/2 与 HTTP/3 的连接复用见 8.5 HTTP/1.1、HTTP/2、HTTP/3 (QUIC);长连接与重连见 8.11 长连接与 WebSocket;CDN 的整体组成见 9.0 CDN 全景:它到底是什么。