Cloudflare K2:无服务器事件流

Cloudflare 推出了 K2,这是一项建立在对象存储之上的无服务器事件流服务,定位为一种更便宜、完全托管的 Kafka 和 Pub/Sub 风格系统替代方案,用于传输大规模数据。评论者将 K2 与 Cloudflare Queues 进行对比(带重试的动作 vs. 高吞吐事件日志),强调更低成本与更高端到端延迟之间的权衡,并指出计划中的 Kafka 兼容 API 以便于采用。此次发布被置于更广泛的“以对象存储为先”的基础设施趋势中,同时也引发了关于厂商锁定、出口流量收费,以及 Cloudflare 在云生态中角色不断扩大的反复担忧。

目的与定位

  • K2 被介绍为 Cloudflare 开发者平台中的一种无服务器、持久化事件流原语。
  • 与 Cloudflare Queues 的区别:
    • Queues:“做这件工作”——按消息重试、死信处理、延迟任务,以及跟踪单个任务。
    • K2:“这件事发生了”——高吞吐量事件日志、多个独立消费者、重放、长期保留、Kafka 风格模式。
  • 一些评论者认为,它填补了 Cloudflare 技术栈中长期缺失的“Kafka 风格”空白。

架构与对象存储趋势

  • 基于对象存储(Cloudflare R2)构建,以实现低成本、持久、可扩展的存储。
  • 契合更广泛的趋势:许多现代系统(Kafka 类、注册表、数据库)正在被重建为“基于 S3 风格对象存储”。
  • 有人认为,几乎所有不需要 100 毫秒以下延迟的东西都在迁移到对象存储;也有人觉得这很反常,因为 NVMe 明明快得多。

与替代方案的比较

  • 与 Kafka / MSK / Confluent 相比:更便宜、完全无服务器、无需管理集群,但延迟更高。
  • 与 Google Pub/Sub 和 AWS Kinesis 相比:主要被认为的差异化因素是成本(尤其是长期保留)以及与 Cloudflare 的紧密集成 / 边缘侧定位。
  • 还提到了 NATS JetStream 以及其他基于 S3 的 Kafka 类产品(AutoMQ、WarpStream、无磁盘 Kafka topics),它们处于相似领域。

定价与性能

  • 讨论了公开的基础定价:生产约 ~$0.04/GB,消费约 ~$0.04/GB,存储约 ~$0.02/GB-月。
  • 一些人认为这比托管 Kafka 更有吸引力;也有人指出,由于每个消费者按 GB 计费,扇出成本可能会很高。
  • 延迟权衡:评论者提到,基于对象存储的流式系统通常会预期 ~1 秒的 p99;一些测试报告显示端到端需要几秒。

语义与 API

  • 至少一次投递,并带有确认/租约语义;每条流最多支持 100 个订阅,每个订阅都有自己的游标和重放能力。
  • 有序与无序用例:有序性通过基于键的分组处理;无序消费更简单。
  • 计划提供 Kafka 兼容 API 以便降低迁移成本,不过 K2 自身的 API 刻意比 Kafka 更简单。

Cloudflare 策略与担忧

  • 一些人称赞 Cloudflare 正在快速构建一个几乎完整的云平台,K2 与其他服务一起形成了一个很有吸引力的生态系统。
  • 也有人担心产品推进速度、最近的裁员,以及供应商集中 / 垄断风险。
  • 还有人呼吁加强数据库产品和 D1 的改进,以完善整个平台。