知识卡片
RTB全链路百毫秒时延约束对架构的强制要求
内容
实时竞价(RTB,Real-Time Bidding)系统最本质的约束是极端的时延要求:从用户浏览器请求一个网页到看到最终展示的广告,中间要完成媒体向Ad Exchange发起广告请求、Ad Exchange向多个DSP并发发送竞价请求、DSP决定是否参与竞价及出价、Ad Exchange按价格排出胜出者、把广告代码送回媒体展示这一整条链路,全部要在通常50-100毫秒内完成——DSP如果响应稍慢,Ad Exchange会直接判定超时、不接受这次竞价响应,这次投放机会就彻底作废,不存在”稍微慢一点也能凑合”的容错空间。这个极端时延约束不是一个可以事后优化的性能指标,而是从系统设计的第一天起就必须内化到架构里的硬性前提:它直接决定了RTB引擎必须是无状态的(见[[RTB无状态设计:把复杂计算下放给外部辅助系统换取自身的快速可靠反馈]]),决定了复杂的机器学习模型必须提前离线训练好、在线阶段只做轻量级的查表和打分而不能现场训练,也决定了任何需要跨机房、跨系统同步调用的环节都要被尽量消灭或改造成异步。这类”响应时间存在硬性上限、超时即等于失败”的场景(类似的还有股票交易撮合、实时风控),架构设计的第一原则永远是先框定这个时延预算,再倒推所有子系统的延迟必须控制在预算之内,而不是先按常规方式设计系统、事后再去做性能优化——后者往往发现某些环节的架构选型从根上就不可能满足时延要求。
参考来源
- 位置:《高可用架构(第1卷)》第2章《高可用架构原理与分布式实践》"2.7 互联网DSP广告系统架构及关键技术解析"节,"2.7.1 优秀DSP系统的特点"及"2.7.2 程序化购买的特点"(源文件:_epub-src/OEBPS/Text/Chapter2_7_2.xhtml、Chapter2_7_3.xhtml)
- 结论依据:原文说明"DSP接到竞价请求后,必须在几十毫秒之内决定是否曝光这次竞价……如果过程的速度稍慢,Ad Exchange就会认为DSP超时而不接受DSP的竞价响应",以及"第1~7步只允许100ms之内的延时,否则广告受众就会觉得网页加载速度太慢,选择离开",直接支撑本卡片结论。
- 原始内容:DSP接到竞价请求后,必须在几十毫秒之内决定是否曝光这次竞价、如果决定竞价要出什么样的价格,然后把竞价的响应发回到Ad Exchange……如果过程的速度稍慢,Ad Exchange就会认为DSP超时而不接受DSP的竞价响应。