发布于 2026-01-06 2 阅读
0

AutoMQ简介:Apache Kafka的云原生替代方案 不断壮大的AutoMQ社区 流式处理世界的演进 AutoMQ真正的云原生架构 迈向多云原生架构 AutoMQ的性能数据和优势 路线图:将流式数据流式传输到数据湖 借助AutoMQ拥抱未来 参考资料

隆重推出 AutoMQ:Apache Kafka 的云原生替代方案

不断壮大的AutoMQ 社区

流媒体世界的演变

AutoMQ 的真正云原生架构

迈向多云原生架构

AutoMQ的性能数据和优势

路线图:将数据流传输到数据湖

拥抱未来,拥抱 AutoMQ

参考

作者:周新宇,AutoMQ CTO

AutoMQ是一款基于云优先理念设计的 Kafka 替代方案。它创新性地基于云重新设计了 Apache Kafka 的存储层,通过将持久化分别部署到 EBS 和 S3,实现了 100% 的成本降低和 100% 的弹性提升,同时保持了与 Kafka 的完全兼容性。此外,它还拥有比 Apache Kafka 更优异的性能。低延迟、高吞吐量、低成本、易用性,所有这些优势集于一身。AutoMQ 社区版的源代码已发布在 GitHub 上,您可以立即免费部署和测试 AutoMQ。

不断壮大的AutoMQ 社区

AutoMQ GitHub 社区
AutoMQ社区是一个充满活力且多元化的群体由致力于 AutoMQ 发展壮大的个人和组织组成。作为 GitHub 上开源软件,AutoMQ 已积累了庞大的用户群体。目前已有超过2900 位星标用户,社区对我们项目的热情显而易见。

我们社区的多样性和参与度充分证明了 AutoMQ 的广泛吸引力和适用性。我们很高兴能够继续培育这个充满活力的社区,推动创新,并共同塑造“动态数据”的未来。

流媒体世界的演变

流媒体世界进化
过去十年,河流存储行业经历了重大变革,其特点是技术进步和创新解决方案的出现。

  1. Kafka 是开端:Apache Kafka 诞生于十年前,标志着流存储新时代的开始。Kafka 集成了当时先进的技术,例如仅追加日志和零拷贝技术,这些技术显著提高了数据写入效率和吞吐量。

  2. 商业引领创新:随着行业的成熟,商业机遇开始涌现。Confluent 和 Redpanda 等公司应运而生,推动了 Kafka 生态系统的技术创新。Confluent 引入了重要的架构创新,即 KRaft 和分层存储,从而简化了架构并大幅降低了存储成本。Redpanda 使用原生语言 C++ 重写了 Kafka,并将中断服务例程 (ISR) 替换为 Raft 复制协议,以实现更低的尾延迟。它们都基于无共享复制架构,并采用了分层存储优化。

  3. 云重塑架构:云原生技术的出现进一步重塑了流存储行业。Warpstream 使用 Go 语言重写了 Kafka,其存储层完全构建在 S3 之上。它通过牺牲延迟实现了云原生弹性架构,并在 Kafka API 协议层面保持兼容。AutoMQ创新性地基于云重新设计并实现了 Apache Kafka 的存储层。在与 Kafka 完全兼容的基础上,它将持久化分别部署到 EBS 和 S3,在不牺牲任何延迟和吞吐量性能的前提下,实现了 10 倍的成本降低和 100 倍的弹性提升。

AutoMQ 的真正云原生架构

AutoMQ的云原生架构
AutoMQ 的云原生架构是精心设计、创新方法和战略性运用云存储技术的结果。我们的目标是创建一个既能充分利用云计算优势,又能克服传统流存储解决方案局限性的系统。

将持久性与云存储解耦

实现 AutoMQ 云原生架构的第一步是将持久性与云存储解耦。与典型的存储解耦(即将存储分离到分布式复制存储软件中)不同,持久性解耦更进一步。在前一种情况下,我们需要管理两种类型的集群,就像 Apache Pulsar 那样,需要同时管理代理集群和簿记集群。

然而,AutoMQ 采取了不同的策略,选择将持久性与云存储解耦,并以 S3 为例。S3 的持久性高达 99.999999999%,使其成为实现此目的的可靠选择。在云计算领域,仅仅将存储与持久性解耦是不够的;我们还必须将持久性与云存储解耦。

解耦持久性架构的核心在于其对云存储的持久性依赖,从而无需使用 Raft 等复制协议。这种方法正逐渐取代传统的解耦存储架构,并获得更多关注。秉持这一理念,我们开发了 S3Stream,一个融合了 EBS 和 S3 优势的流式存储库。

无状态代理与 S3Stream

借助 S3Stream,我们替换了 Apache Kafka broker 的存储层,将其从无共享架构转变为共享存储架构,并在此过程中使 broker 变为无状态。这是一个意义重大的转变,因为它降低了系统管理的复杂性。在 AutoMQ 架构中,Broker 是唯一的组件。一旦变为无状态,我们甚至可以使用经济高效的 Spot 实例进行部署,从而进一步提高系统的成本效益。

为 Elasticity 实现一切自动化

实现 AutoMQ 云原生架构的最后一步是实现所有流程的自动化,从而构建弹性架构。一旦 AutoMQ 变为无状态,自动化各种功能(例如流量的自动扩展和自动均衡)就变得非常简单。

我们有两个自动化控制器,用于收集集群的关键指标。自动伸缩控制器监控集群负载,并决定是缩减还是扩展集群。自动负载均衡控制器通过在整个集群中动态重新分配分区来最大限度地减少热点。这种自动化程度是 AutoMQ 灵活性和可扩展性的关键所在,也是其名称的由来。

迈向多云原生架构

多云原生架构
随着我们向多云原生架构迈进,灵活且适应性强的存储解决方案变得至关重要。AutoMQ 的共享存储设计正是这种灵活性的体现,旨在与各种云提供商无缝集成。

共享存储:WAL 与对象存储的结合

该设计的核心是 S3Stream 的概念,它是一个共享的流存储库。它主要由共享的预写式日志 (WAL) 和共享的对象存储组成。

数据首先持久写入预写入日志 (WAL),然后近乎实时地上传到对象存储。WAL 本身不提供数据读取功能,而是作为一种故障恢复机制。消费者直接从 S3 读取数据。为了提升性能,我们实现了内存缓存加速,这意味着尾读消费者无需直接访问对象存储。

S3Stream 的这种架构具有高度灵活性,因为它支持多种 WAL 存储介质。例如,可以使用 EBS、区域 EBS、S3,甚至它们的组合来构建复制 WAL。这种灵活性主要源于不同云服务提供商提供的云存储功能各异。其目标是构建一种能够跨多个云服务提供商实现最佳性能的架构。

架构适应不同的云提供商

AutoMQ共享存储模型的架构设计旨在适应不同云服务提供商的具体功能。架构的选择主要取决于各云服务提供商提供的具体特性和服务。

例如,Azure、Google Cloud 和阿里云都提供区域性 EBS。鉴于此特性,这些云提供商的最佳实践是将区域性 EBS 用作 WAL(预写入日志)。这使得系统能够容忍区域故障,从而确保可靠且一致的性能。

相比之下,AWS 不提供区域性 EBS 存储。但是,AWS 提供 S3 Express One Zone 服务,其延迟仅为个位数毫秒级。虽然此服务仅限于单个可用区,但 AutoMQ 仍然可以通过使用复制 WAL 日志来确保对可用区故障的容错能力。在这种设置下,数据会同时写入 S3 One Zone 存储桶和 EBS 卷。

如果您可以使用比 S3 更低延迟的替代方案,或者您的业务可以容忍数百毫秒的延迟,则可以将 S3 用作 WAL(预写式日志)。这意味着整个架构完全依赖 S3 来存储 WAL 和数据。是的,AutoMQ 也能够轻松提供类似 warpstream 的架构。

通过了解并利用各个云提供商的独特功能,AutoMQ 可确保在各种云环境中实现最佳性能和可靠性。这种灵活性和适应性是多云原生架构成功的关键。

AutoMQ的性能数据和优势

AutoMQ的性能
为了充分了解 AutoMQ 的功能和优势,让我们来看一些关键的基准测试数据和性能指标。

与 Apache Kafka 相比,AutoMQ 的优势可以概括如下:

  • 比 Apache Kafka 的成本效益高 10 倍:自动扩展、支持竞价型实例、独立于 S3 的存储。所有这些都使 AutoMQ 的成本效益比 Apache Kafka 高 10 倍。

  • 👍操作简便:无需自行管理集群容量。无状态 Broker 可在数秒内自动扩缩容。告别数据倾斜、冷热数据竞争。自平衡功能可自动解决所有这些问题。

  • 🚀高性能:延迟仅为个位数毫秒,吞吐量与 Apache Kafka 相当,但追赶读取性能要好得多。

  • 😄轻松迁移:100% 兼容 Apache Kafka,无需更改任何现有配置。只需访问新的引导服务器端点,一切就绪。

成本效益提高 10 倍

AutoMQ 的创新架构为数据密集型软件领域带来了前所未有的成本节约。其设计重点在于优化计算和存储资源,与传统解决方案相比,成本优势几乎降低了十倍。

首要优势在于对 EC2 资源的优化。AutoMQ 通过消除数据复制,无需额外资源来管理复制流量。此外,该平台具有弹性,能够根据工作负载动态调整集群规模,从而显著减少 EC2 资源的使用——最高可达 90%。

此外,AutoMQ 的无状态架构允许使用 Spot 实例。这种策略可显著降低成本,进一步节省计算资源。

在存储方面,AutoMQ 也表现出色。它没有采用传统的三副本 EBS 存储,而是采用了单副本对象存储模型。这种创新方法可将存储成本降低高达 90%。

我们基于AWS压力测试的实际账单对比,制作了详细的成本对比图表,清晰地展示了这些节省。如需了解更多详细信息,请访问我们的网站查看完整报告。

瞬时弹性效率

AutoMQ 的共享存储架构极大地提升了运维效率。例如,在 AutoMQ 中重新分配分区不再需要数据复制,只需几秒即可完成,而 Kafka 则可能需要数小时。此外,在集群扩展方面,AutoMQ 可以通过分批重新分配分区,在大约一分钟内将新节点的流量与集群流量进行均衡。相比之下,Kafka 的这一过程可能需要数天时间。

100% 兼容性

AutoMQ 最重要的特性之一或许就是它的兼容性。我们用 S3Stream 替换了 Kafka 的存储层,同时保留了计算层的所有代码。这确保了 AutoMQ 与 Kafka 的协议和功能完全兼容。例如,AutoMQ 完全支持支持紧凑主题、幂等生产者和事务消息等功能的新版 Apache Kafka。

此外,我们通过一个非常小的 LogSegment 组件替换了 Kafka 的存储层。这种方法使我们能够非常轻松地与 Kafka 上游同步代码,这意味着我们将来可以轻松地合并 Apache Kafka 的新功能。这相比 WarpStream 等解决方案具有显著优势,因为 WarpStream 在兼容性和未来扩展性方面可能面临挑战。

总而言之,AutoMQ 的灵活架构、成本节约、运营效率和兼容性使其成为云端流存储的强大解决方案。

路线图:将数据流传输到数据湖

AutoMQ 的路线图
在最后一部分,我们将概述我们对未来将数据流式传输到数据湖的愿景,这是我们路线图的关键方面。

向数据共享的转变

我们正目睹这样一种趋势:所有数据密集型软件最终都将数据存储在对象存储中,以充分利用共享存储的优势。然而,即使所有数据都存储在对象存储中,在不同系统之间共享数据仍然没有直接的方法。这个过程通常需要执行提取、转换和加载 (ETL) 操作以及数据格式转换。

我们认为,从共享存储到共享数据的转变将是现代数据技术的下一个关键发展阶段。像 Delta Lake 和 Iceberg 这样的表存储解决方案统一了数据湖中的数据格式,使这种转变成为可能。

从溪流到湖泊:一段数据之旅

展望未来,我们设想数据使用将是一个无缝、互联的过程,从而最大限度地发挥数据效用和运营效率。

数据生成之旅始于数据生成。数据以流式方式产生,并立即存储在流式存储系统中。这种持续不断的信息流构成了我们数据格局的基础。

接下来,我们将释放这些数据的实时价值。Flink Jobs、Spark Jobs 或 Kafka 消费者等工具会深入数据流,通过 Stream API 实时提取有价值的洞察。这一步骤对于跟上数据的动态变化至关重要。

随着数据老化并失去时效性,AutoMQ 内置的压缩​​器会介入。它会静默且透明地将数据转换为 Iceberg 表格格式。这种转换过程确保即使数据不再具有实时相关性,仍然可以访问和使用。

最后,我们进入了大规模分析阶段。整个大数据技术栈现在可以使用零 ETL 方法访问转换后的数据。这种方法无需额外的数据处理,即可进行直接、高效的分析。

总之,随着我们不断创新和发展,我们的目标始终如一:为云端流式存储提供强大、高效且经济的解决方案。通过简化数据流向数据湖的流程,我们旨在进一步提升大数据对企业的价值和实用性。

拥抱未来,拥抱 AutoMQ

我们的云原生解决方案 AutoMQ 不仅仅是现有技术的替代方案,更是数据密集型软件领域的一次飞跃。它承诺带来成本节约、运营效率提升和无缝兼容性。

我们设想,未来数据将能够轻松流入数据湖,从而释放实时生成式人工智能的潜力。这种方法将提升大数据的利用率,带来更全面的分析和更深刻的洞察。

最后,我们诚挚邀请您加入我们,共同开启这段旅程,为 AutoMQ 的发展贡献力量。请访问我们的网站https://www.automq.com/,访问 GitHub 代码库,并加入我们的 Slack 群组进行交流。让我们携手 AutoMQ,共创数据未来。

参考

以下是一些有助于您深入了解 AutoMQ 的实用链接。如有任何疑问,欢迎随时联系我们。

  1. AutoMQ 网站:https://www.automq.com/
  2. AutoMQ 代码库:https://github.com/AutoMQ/automq
  3. AutoMQ 架构概述:https://docs.automq.com/automq/architecture/overview
  4. AutoMQ S3Stream 概述:https://docs.automq.com/automq/architecture/s3stream-shared-streaming-storage/overview
  5. AutoMQ 技术优势:https://docs.automq.com/automq/architecture/technical-advantage/overview
  6. AutoMQ 和 Kafka 的区别:https://docs.automq.com/automq/what-is-automq/difference-with-apache-kafka
  7. AutoMQ 和 WarpStream 的区别:https://docs.automq.com/automq/what-is-automq/difference-with-warpstream
  8. AutoMQ 和分层存储的区别:https://docs.automq.com/automq/what-is-automq/difference-with-tiered-storage
  9. AutoMQ 客户:https://www.automq.com/customer
文章来源:https://dev.to/automq/introducing-automq-a-cloud-native-replacement-of-apache-kafka-kkc