HeadlinesBriefing HeadlinesBriefing.com

Cloudflare K2:无服务器事件流

Hacker News •
×

在传统的远程过程调用(RPC)架构中,存在一个核心挑战:生产者和消费者必须在规模和时间上保持一致。如果生产者发送的数据量超出消费者的处理能力,或者消费者或下游服务不可用,事件就会被丢弃。当多个消费者需要独立处理数据时,这个问题会更加复杂。例如,电子商务后端在交易完成时可能会发出事件,这些事件需要由分析系统和欺诈检测服务读取。我们可以通过解耦生产者和消费者来解决这个问题——在中间插入一个服务,该服务吸收写入,同时允许独立的读取者按照自己的节奏消费。

今天,我们推出 Cloudflare K2 公开测试版来解决这个问题。K2 是开发者平台上的一个持久化事件流原语。您将事件发送到 K2 流,该流将它们存储为有序日志。消费者可以通过多种方式读取它们,例如将读取分散到一组消费者中,或将所有消息传递给所有消费者。它完全无服务器,可扩展到海量数据,并支持长期保留,因此即使消费者长时间停机也不会丢失数据。

在底层,K2 在 R2 对象存储之上实现了一个分区的持久化日志,这使其能够扩展到巨大的存储容量。如果您准备好开始,可以按照此处的指南在几秒钟内创建您的第一个流。我们最初构建 K2 是因为我们需要边缘上的持久化缓冲区,最初用作 Basin Pipelines 的摄取层。我们独特的架构意味着我们通常无法运行像 Apache Kafka 这样的传统分布式系统软件,需要重新思考这些系统的构建和运行方式。

在设计成为 K2 的持久化缓冲系统时,我们决定依赖我们已经拥有的强大状态原语:R2。像 R2 这样的对象存储系统将极其持久的存储(11 个 9!)与强一致性 API 结合在一起。另一个好处是它分离了计算和存储,这意味着两者可以独立扩展。这使我们能够以低成本存储大量历史数据。

来源: Hacker News · 由HeadlinesBriefing整理摘要