在程序化广告(ADX)领域,实时竞价(RTB)是一场关于微秒级延迟与海量算力成本的极限博弈。当你的广告交易平台(ADX)需要支撑每秒数百万次(Millions of QPS)的 OpenRTB 请求时,传统的"巨头云平台"(如 AWS、谷歌云)往往会带来两大致命痛点:高昂的网络出站流量费,以及复杂的隐形计费陷阱。
对于广告平台的架构师而言,核心的考量不仅是服务器的计算性能,更是每一百万次请求(CPM)背后的基础设施边际成本。DigitalOcean(简称:DO)凭借其颠覆性的流量共享池模型、直观的计费规则,以及在全球广告枢纽节点的精准布局,正成为高并发、大吞吐量 ADX 业务的黄金替代方案。更重要的是,DigitalOcean 已经帮助迁移过来的ADX广告平台节省了30%-70%的成本。
本文将深度解析现代 ADX 系统的三层技术架构,算力与延迟的权衡模型,并向您展示如何利用 DigitalOcean 的核心产品栈(Droplets云服务器、负载均衡、托管数据库等)映射并优化您的广告交易网络,在确保整个竞价管道不超过 100 ms 的同时,大幅降低您的全球云服务成本。
本文核心要点:ADX 延迟预算与成本模型
- ADX 技术栈分为三层:SSP (卖方平台)、ADX (竞价核心)和 DSP/DMP (买方平台)。面向用户的完整路径通常控制在 约 150 ms 以内,整个管道不超过 100 ms ,内部 ADX 处理通常 低于 20 ms。
- 大型交易所通过水平扩展集群达到 数百万 QPS 的规模,而非依赖单台机器。
- 对于许多 ADX 部署,网络带宽占总云支出的 30% 到 40% 。在 1 PB 出站数据传输(DTO)的情况下,AWS 公开层级费率的标准出站费用约为 每月 ~$50K。
- DigitalOcean 超出免费配额的出站流量按 每 GiB $0.01 计费,包含的流量在团队层面共享,并且与 Kafka托管服务 及其他托管数据库之间的流量不收取带宽费。
- Regional Load Balancers 可扩展到 200 个节点 而不中断服务。每个额外的 HTTP 节点最高可处理 10,000 请求/秒 (根据 DigitalOcean 文档,最大节点数时聚合可达 200 万 RPS)。
- Droplet 自动伸缩池、配备最高 10 Gbps 网络的 高级Droplets 、Kubernetes托管、配备 NVMe 本地 SSD 的 存储优化型Droplets云服务器 以及 Spaces对象存储(无按次 API 调用费)覆盖了 DO 上典型的卖方和买方 ADX 路径。
程序化广告(ADX)在云原生的部署现状与吞吐挑战
广告交易平台居于发布商和广告主之间。供应方平台(SSP)提供广告库存。需求方平台(DSP)提交出价。交易所负责消息规范化、运行竞价并返回获胜者。
ADX 系统分为三个主要层级:SSP / ADX / DSP。
| 层级 | 全称 | 角色 |
|---|---|---|
| SSP | 供应方平台(Supply-side platform) | 发布商库存和广告请求 |
| ADX | 广告交易平台(Ad exchange) | OpenRTB 竞价和路由 |
| DSP | 需求方平台(Demand-side platform) | 竞价逻辑和广告活动执行 |

端到端请求流程(用户打开应用或网页)
当用户打开一个应用或网页时,管道的执行流程如下:
- SSP 向 ADX 发送请求
- ADX 构建竞价请求
- 分发到多个 DSP
- DSP 返回出价
- ADX 运行竞价
- 选出获胜者
- 广告返回给用户
- 记录展示或点击
该路径的性能目标:
- 总时间预算: 约 150 ms
- 超低延迟: 整个管道 < 100 ms 。内部 ADX 处理通常 < 20 ms
- 大规模: 在水平可扩展集群上达到数百万 QPS
- 数据驱动决策: 每个请求都涉及实时数据查询和机器学习推理
- 全球分布: 多区域部署(美区 / 欧区 / 亚太区)
ADX 实时竞价系统的四层核心技术架构深度解析
入口与边缘网络层:高并发流量接入与 Anycast DNS 地理路由
来源:
- SSP(供应方平台)
- 发布商 SDK 和网页
关键组件:
- Anycast DNS 或地理 DNS(DigitalOcean DNS)
- L4/L7 负载均衡器(DigitalOcean Load Balancers、Envoy 或 Ubuntu 上的 Nginx)
特点:
- 超低延迟
- 极高吞吐量(数百万 QPS)
- 全球边缘部署
ADX 交易所核心引擎:基于高性能语言(Go/Rust)的 OpenRTB 撮合机制

交易所核心的行为类似于广告领域的高频交易系统。
核心组件:
- 竞价请求构建器: 将传入请求转换为 OpenRTB 格式
- DSP 路由器: 选择哪些 DSP 接收每个请求
- 分发引擎: 并行向数十或数百个 DSP 发送竞价请求
- 超时控制器: 强制执行严格的截止时间(通常总计 50 到 120 ms)
- 竞价引擎: 运行第一价格或第二价格竞价
技术特性:
- 使用高性能语言编写(C++、Go、Rust)
- 内存处理(在热路径上避免磁盘 I/O)
- 无锁或基于 actor 的并发模型
- 每跳延迟确定性
DSP 与 DMP 数据层:低延迟特征存储与 AI 智能推理

核心系统:
- 用户画像系统(DMP/CDP): 跟踪用户行为、身份标识和设备图谱
- 特征存储: 实时特征(兴趣、上下文、历史)
- 预测模型: CTR(点击率)和 CVR(转化率)
- 策略引擎: 频次控制、品牌安全、欺诈过滤
在买方进行 ML 评分时,团队通常将自行管理的 CPU-Optimized 或 GPU Droplets服务器 上的推理与 DigitalOcean Inference 搭配使用。
关于AI推理服务模式应该选什么,请参考我们之前发布的 Serverless vs Dedicated vs Batch Inference。
日志与大数据流处理

日志类型: 展示、点击、转化、竞价日志。
技术栈:
- 消息队列:Kafka(DO 上的 Kafka托管服务)
- 流处理:Flink 或 Spark
- 存储:兼容 S3 的对象存储(Spaces对象存储)或 HDFS
- OLAP:ClickHouse、StarRocks、ScyllaDB、Druid、BigQuery 或 Redshift
使用场景: 计费和收入计算、报告仪表板、归因建模、ML 训练管道。
数据层级:
| 层级 | DigitalOcean 上的示例 |
|---|---|
| 实时 | Redis、Valkey、MySQL、MongoDB等托管服务 |
| 流式 | Kafka托管服务 + 在Kubernetes 托管服务上的 Flink |
| 离线与报表 | Spaces 数据湖、Storage-Optimized Droplets 上的 ClickHouse 或 StarRocks |
在 DigitalOcean 部署高可用、低延迟 ADX 的配置指南
DigitalOcean 提供低成本的基础设施、强大的区域覆盖以及适合 ADX 卖方和买方工作负载的生态系统。以下示例布局反映了常见 ADX 客户的需求。实际规模将根据 QPS、分发量和日志量有所不同。

SSP/ADX 入口如何击碎 AWS 的"带宽流量费刺客"?
数天内完成全球部署: 美国东西海岸、东南亚(SGP)和欧洲(FRA 和 AMS)的多个数据中心。
以下是部署卖方侧时需要考虑的关键点:
低网络带宽成本: 对于许多 ADX 部署,网络带宽约占总费用的 30% 到 40% 。如果一个 ADX 栈在 AWS 上传输 1 PB 的 DTO,按公开层级费率计算,出站费用约为每月 ~ 50K∗∗(按AWS当前公布的层级费率,1,000,000GB互联网出站流量约为∗∗57K)。
基于 AWS 公开层级定价(互联网出站数据传输):
| 层级 | 费率 |
|---|---|
| 前 10 TB | $0.09 / GB |
| 下一个 40 TB | $0.085 / GB |
| 下一个 100 TB | $0.07 / GB |
| 下一个 350 TB | $0.06 / GB |
| 超过 500 TB | $0.05 / GB |
在 DigitalOcean 上,Droplet 方案中包含的出站流量在团队层面共享。当 DTO 不超过已包含的流量配额时,超额费用为 0∗∗。额外的出站传输费用为∗∗每GiB0.01 (带宽计费说明)。同一数据中心内资源之间的 VPC 流量使用私有网络。
托管 DNS: DigitalOcean DNS,支持自动续期,并通过 Let's Encrypt 在 Load Balancers 上提供免费的 HTTPS 证书管理。
负载均衡器: 可扩展的 Regional Load Balancers 最多支持 200 个 LB 节点 且不中断服务(负载均衡器限制)。根据负载均衡器定价,每个额外区域 HTTP 节点最多可增加 10,000 请求/秒 和 10,000 并发连接 。在最大 200 节点 配置下,负载均衡器的聚合能力最高可达 200 万 HTTP 请求/秒(并非单个节点)。DigitalOcean 建议自行运行性能基准测试,因为性能因协议和负载而异。
Droplets: Droplet 自动伸缩池支持自动扩展,可在 QPS 波动时优化成本。
网络带宽: 许多 Droplet 方案提供 2 Gbps+ 的网络带宽,为中小型 ADX 客户提供优异的性价比。
Premium Droplets: Premium CPU Droplets 提供最高 10 Gbps 的公共网络吞吐量,并配备最新一代 Intel Xeon Scalable 或 AMD EPYC 处理器。高端 ADX 客户使用这些方案将竞价工作负载扩展到 数百万 QPS。
DOKS: DigitalOcean Kubernetes 是一种托管的原生 Kubernetes 服务,团队可在数分钟内完成工作负载的扩展。
DSP/DMP 分析层的高 IOPS 本地存储与托管分析型数据库
托管数据库: MySQL、Kafka、MongoDB 和 OpenSearch 被 ADX 客户广泛用作运营存储和数据湖。
- 所有支持的引擎均提供存储自动扩展 ,以防止磁盘写满导致停机(MySQL 调整大小文档)
- MySQL 上的时间点恢复(PITR) 可防止意外删除(MySQL 功能)
- 托管 MySQL 支持零停机的计算和存储集群调整
- Managed Kafka 集群无网络费用 (Kafka 定价)
Storage-Optimized Droplets: Storage-Optimized 方案 上的 NVMe 本地 SSD 在客户基准测试中为 ClickHouse 和其他分析工作负载提供 200K+ IOPS。DigitalOcean 不公布固定的 IOPS SLA。在生产切换前请自行运行磁盘基准测试。
高性能 Spaces: Spaces 支持 StarRocks、Doris、Flink 及其他兼容 S3 的数据湖工作负载。Spaces 不 收取 API 调用费。订阅方案包含每月 250 GiB 存储和 1,024 GiB 出站传输。
代码示例:使用 doctl 自动化配置 ADX 区域负载均衡与 Droplet 弹性伸缩池
以下代码片段遵循 DigitalOcean 文档。请将区域、标签和 ID 替换为你自己的值。先安装 doctl,然后运行 doctl auth init。
在 nyc3 区域创建一个区域 HTTP 负载均衡器 ,用于标记为 adx-auction 的 Droplets:
lua
doctl compute load-balancer create \
--name adx-nyc3-lb \
--region nyc3 \
--size-unit 3 \
--tag adx-auction \
--forwarding-rules entry_protocol:http,entry_port:80,target_protocol:http,target_port:8080 \
--health-check protocol:http,port:8080,path:/health
为竞价工作节点创建一个自动伸缩池 (自动伸缩池 API):
swift
curl -X POST \
-H "Content-Type: application/json" \
-H "Authorization: Bearer $DIGITALOCEAN_TOKEN" \
-d '{
"name": "adx-auction-pool",
"config": {
"min_instances": 2,
"max_instances": 20,
"target_cpu_utilization": 0.6,
"cooldown_minutes": 5
},
"droplet_template": {
"size": "c-8",
"region": "nyc3",
"image": "ubuntu-24-04-x64",
"tags": ["adx-auction"],
"ssh_keys": ["YOUR_SSH_KEY_ID"],
"vpc_uuid": "YOUR_VPC_UUID",
"user_data": "#cloud-config\nruncmd:\n - systemctl start adx-auction\n"
}
}' \
"https://api.digitalocean.com/v2/droplets/autoscale"
配置 Managed Kafka 用于展示和竞价日志(Kafka 创建文档):
lua
doctl databases create adx-kafka-nyc3 \
--engine kafka \
--region nyc3 \
--size db-s-2vcpu-4gb \
--num-nodes 3
常见问题
1. 什么是广告交易系统?
广告交易系统是一个技术平台,发布商和广告主通过自动化的实时竞价买卖广告位。供应方平台提供库存,需求方平台提交出价,交易所使用 OpenRTB 等协议撮合买方和卖方。在 DigitalOcean 上,交易所核心通常运行在 CPU优化型Droplets 或 DOKS 上,前端放置 Regional Load Balancers。
2. 广告交易在程序化广告中是如何运作的?
当用户加载一个页面时,SSP 将广告机会发送给交易所。交易所构建竞价请求,并行分发给符合条件的 DSP,在超时窗口内(通常 50 到 120 ms )收集出价,运行竞价,并返回获胜广告。完整的面向用户路径目标为 约 150 ms ,管道不超过 100 ms ,内部 ADX 处理通常 低于 20 ms。
3. 实时竞价广告交易需要怎样的延迟预算?
RTB 技术栈的目标是上述 < 100 ms 的管道预算,内部 ADX 处理通常 低于 20 ms,以便将剩余时间留给 DSP 往返。交易所将入口、竞价和缓存层部署在同一区域,状态保存在内存中,热路径上避免磁盘 I/O。在增加更多 DSP 分叉之前,请通过负载均衡器健康检查测量 p95 和 p99。
4. 出站带宽定价对 ADX 部署为什么重要?
竞价请求、响应和跟踪像素都会产生出站流量。对于许多 ADX 团队而言,带宽占云总支出的 30% 到 40% 。在 1 PB DTO 的情况下,AWS 公开层级费率约为每月 ~ 50K∗∗。DigitalOcean将包含的出站传输在团队层面共享,超出部分按∗∗每GiB0.01 收费(带宽计费说明)。托管数据库的流量不计入带宽计费。
5. 可以在 DigitalOcean 上部署生产级广告交易平台吗?
可以。DigitalOcean 提供多区域 Droplets、Regional Load Balancers(最多 200 个节点 ,每个 HTTP 节点 10,000 RPS )、Droplet 自动伸缩池、Managed Kafka/MySQL/MongoDB/OpenSearch、Spaces 和 VPC 网络。从一个区域开始,针对你的 数百万 QPS 目标进行负载测试,然后根据指标扩展到 SGP、FRA 和 AMS。
总结
现在你已经了解了 ADX 的各个组件(SSP、交易所核心、DSP/DMP 和日志管道)以及在云基础设施上运行它们所需的技术要求:约 150 ms 的用户预算、< 100 ms 的管道、< 20 ms 的内部 ADX 目标,以及大规模下的数百万 QPS。
在 DigitalOcean 上,卖方团队重点关注带宽成本(30% 到 40% 的支出项和 $0.01/GiB 的超额模型)、Regional Load Balancers 和自动伸缩池。买方团队重点关注托管数据库、200K+ IOPS 的 Storage-Optimized 分析节点以及用于数据湖的 Spaces。在生产上线之前,请根据你自己的基准测试验证每一个容量数字。
下一步
- 在 NYC、SFO、SGP、FRA 或 AMS 创建一个 Droplet 或 DOKS 集群。
- 为竞价层添加一个 Regional Load Balancer 和自动伸缩池。
- 搭建 Managed Kafka 和 Spaces 用于日志记录和离线分析。
- 通过带宽计费文档和带宽计算器建模出站流量。
- 阅读 AdTech 和 MarTech 解决方案页面,或探索在 DOKS 上使用 Slinky 入门指南,了解同一平台上一个相关的高扩展性 Kubernetes 模式。