Cloudflare推出K2公测版重构无服务器事件流
Cloudflare推出了无服务器事件流服务K2公测版。K2把R2对象存储作为分区持久化日志底座,以较高延迟换取低成本和弹性扩展,生产端延迟p99约为1秒,但公开测试显示端到端交付速度更慢。
K2最初是为Basin Pipelines提供事件暂存管道。该处理系统运行在覆盖335多个城市的边缘网络中,依赖临时计算资源和公共互联网连接,传统Kafka并不适合这种环境。R2提供“十一九”持久性和强一致性API,将复制、共识等能力下沉到存储层,使计算与存储能够独立扩展。
对象存储不支持追加写入,而日志需要持续追加。K2会先在边缘服务内存中暂存数据,等待短时间后批量写入分段文件,再利用R2原子操作维持顺序并生成递增偏移量,因此不需要额外协调服务。批处理等待窗口也是延迟的主要来源。用户实测写入延迟低于1秒,但端到端交付延迟达到p95 2.5秒、p99 7.5秒,团队承认Consume API的长尾延迟高于预期,并计划优化读取性能。
讨论者认为对象存储正成为数据基础设施,也有人指出S3 Express、GCS rapid buckets等更快的对象存储层可将适用范围扩展到100毫秒以下,但单可用区设计仍需仲裁写入。竞争服务声称通过有状态后端持续刷新多租户对象,可在同一区域实现约50毫秒p99确认延迟。K2的生产和消费均按每GB 0.04美元计费,单消费者实际为0.08美元/GB,数据保留另收每月每GB 0.02美元,公测期间免收保留费;扇出消费者的成本可能快速上升。
K2定位于Cloudflare生态,Kafka兼容性已列入路线图,目前采用租约式消费API:消费者轮询订阅后获得5分钟租约,可确认、否定确认并请求重投,或延长租约,以提升Workers场景下的读取并行度。生产端支持批量发送字节数据,编码格式由应用决定,并可根据错误是否可重试返回不同状态码。它也被拿来与AutoMQ、WarpStream及Kafka无磁盘主题比较,但独立使用K2的价值相对有限。
公测版默认提供10GB存储空间,每条数据流生产吞吐量上限为30MB/s,可通过表单申请提高限额。消息键与按键顺序保证、每秒数GB并行写入、推送式Worker消费者、更低延迟的Express层以及Kafka客户端支持,均已列入后续计划。数据流可通过控制面板、API、Wrangler或同期推出的cf命令行工具创建。
本文基于公开渠道信息整理,内容可能存在不准确或遗漏之处,不代表本站立场,如内容涉及侵权或错误,请联系我们处理。
阅读原文