Cloudflare Birthday Week 2026 · 新发布

🌩️ Cloudflare K2:把事件流建在 R2 对象存储 上的无服务器黑科技

告别自建重度 Kafka 集群的运维梦魇!让 335+ 边缘节点用万能的 11 个 9 廉价对象存储,跑起海量高吞吐、严格有序、永久保留的 Serverless 事件流!

🎯 核心主线:为什么把 Kafka 搬到全球边缘会“水土不服”?

在传统架构里,如果你有一大堆事件(比如电商交易、用户点击行为、智能体调用日志),既想让风控系统看、又想让实时分析大屏看,通常必须搬出 Apache Kafka。但在 Cloudflare 遍布全球 335 个城市的无服务器(Serverless)网络里:

❌ 传统 Kafka 的痛点

重型分布式集群:必须依赖长效宿主机、挂载持久化本地磁盘、管理 ZooKeeper/KRaft 元数据选主。

  • 💣 边缘机器容量碎片化,随时可能优雅关机重调度
  • 💣 跨公网节点复制延迟高、共识脆弱
  • 💣 机器一旦挂掉,分区重平衡(Rebalance)引发雪崩
  • 💣 存储成本高昂,历史日志不敢保留太久
VS
✅ Cloudflare K2 的解法

存储与计算彻底分离:直接把事件流建在底层现成的 R2 对象存储(兼容 S3)之上!

  • ⚡ 无需任何 Broker 维护:完全 Serverless,按需扩缩
  • 🛡️ 11 个 9 超高持久性:复制与共识全丢给底座 R2
  • 💰 极致廉价长存:$0.02/GB/月存储,放几个月都不心疼
  • 🔄 租约式消费(Lease):支持多消费者并行拉取或多路广播

💡 5 岁也能懂的比喻:

传统的 Kafka 就像在每个路口建一座带大保险柜的转运中心:你得派专人 24 小时看守保险柜、每天保养地基,如果路口要修路(节点维护),保险柜搬迁就得鸡飞狗跳。
Cloudflare K2 就像快递驿站直接把包裹整箱打包存进全国共享的无人智能云仓:路口的边缘工人只负责短时间在内存里理理货,每攒够一小箱(约 1 秒),唰地一下直接封箱扔进万无一失的地下超级大粮仓(R2)。任何下游快递员随时拿着提货单来批量领走!

🧩 K2 内部技术解密:对象存储不支持 Append,怎么做实时日志流?

对象存储(像 S3 / R2)最大的死穴是:只能全量覆盖写,不支持追加写入(No Append)! 如果每来一条 1KB 的事件就写一个 R2 文件,延迟和元数据直接爆炸。K2 是如何化腐朽为神奇的?

📡 生产者 Producers Worker Bindings HTTP REST API CLI / IoT 设备 写入 ⚡ 边缘内存微聚合 In-Memory Batching 攒批缓冲池(~1秒) 多条事件拼成一个完整 Segment R2 原子原子条件写 利用强一致性保证 Offset 单调递增 封箱写入 🗄️ R2 底座 11 个 9 持久性 seg_001.log seg_002.log seg_003.log 拉取 👥 消费者 Subscriptions 风控分析 财务结算 AI Agent 训练
巧妙的取舍权衡(Trade-off): 因为需要先在内存攒批(Batch)再整块写入 R2,K2 的 P99 生产写入延迟大约是 1 秒左右。对于股票撮合这种微秒级场景并不适用,但对于绝大多数数据管道、产品埋点分析、日志收集、异步事件解耦来说,用 1 秒延迟换取“零运维、无限伸缩、极低价格、永不丢数据”,是一笔极度划算的买卖!
⚔️ 兄弟对决:Cloudflare Queues vs Basin Pipelines vs K2 Streams

Cloudflare 平台上现在有三款异步消息工具,到底什么时候该选谁?一张表彻底分清:

产品 主要职责与定位 消费模式与粒度 消息重试与死信 典型最佳场景
Cloudflare Queues 单任务异步执行与重试队列 按单条消息/小批次消费,单点处理完即删 精细级 支持单消息延迟、重试、死信队列 (DLQ) 图片缩放、发邮件、耗时单点 Worker 异步任务
Basin Pipelines 流式清洗与数据导入管道 (ETL) 基于 Arroyo 引擎拉取清洗,直写目标存储 流水线级断点续传与 Checkpoint 把海量 JSON 自动转换归档成 R2 上的 Parquet / Iceberg 分析表
Cloudflare K2 持久化、多订阅的事件流底座 批量租约消费(Lease),支持并行分发或广播 批次级 支持整个 Batch 的 Ack / Nack / 续约 高吞吐日志分析、跨部门事件扇出广播、长时间离线重放
🎮 交互试验台:体验 K2 的五分钟“租约消费制”(Lease & Ack)

在 K2 中,消费者(Worker)拉取数据后会获得一份 5 分钟的批次租约。在租约期内,其他消费者看不到这批数据。消费者可以执行:确认完成(Ack)、处理失败重放(Nack)、或延长租约(Extend)。

// 准备就绪,点击上方按钮模拟事件在 K2 管道中的生命周期...
💰

极其残暴的定价模型

Beta 期间免费试用(单流 30MB/s 吞吐、10GB 配额)。正式商用后,写入 $0.04/GB、消费 $0.04/GB、存储每月仅需 $0.02/GB。对比 AWS MSK 或自建 Kafka 的 EC2 实例开销,成本直接砍掉 80% 以上!

🔌

双重接口:HTTP 与原生 Worker

既可以在 Cloudflare Worker 内部通过极简的 env.EVENTS.send() Binding 极速写入,也可以在外部通过标准 HTTPS REST API 随时推送和拉取,完全不挑运行环境与客户端语言。

🚀

即将到来的重磅特性

未来数月将支持:按 Key 保障严格局部顺序、多 GB/s 的并行吞吐拓展、Worker 主动推送订阅模式(Push)、更低延迟的 Express 极速层,以及平替已有工具的 Apache Kafka 协议原生兼容层!

💻 极简代码:如何在 Worker 里把事件丢进 K2?

只需要三行核心代码,K2 就会自动在后台边缘完成缓冲聚合并安全入库:

// Worker 内部生产写入 K2 const result = await env.EVENTS.send([ { content: new TextEncoder().encode(JSON.stringify({ event: "page_view", path: new URL(request.url).pathname, timestamp: Date.now(), })), headers: { "content-type": "application/json" }, }, ]); if (!result.success) { console.error(`Produce failed: ${result.error.message}`); }