概述
关于 AutoMQ
AutoMQ 基于云重新设计 Kafka,将存储分离至对象存储,在保持和 Apache Kafka 100% 兼容 前提下,为用户提供高达** 10 倍的成本优势** 以及百倍的弹性优势。
设计理念
存储分离至共享的云存储服务
存算分离的优势已被广泛认可。然后,业界对于存算分离理念的落地往往是将存储分离为一套自管理的分布式存储软件,这无疑显著增加了软件部署、运维和治理的复杂性。AutoMQ 认为,将存储从软件中解耦并分离至共享的云存储服务,是云原生时代最优的解法。
AutoMQ 通过构建在 S3 上的流存储库 S3Stream,将存储卸载至云厂商提供的共享云存储 EBS 和 S3,充分结合两者的存储特征,提供低成本、低延时、高可用、高可靠和无限容量的流存储能力。更多技术细节请参考技术架构章节。
共享存储优于 Shared Nothing 架构
Apache Kafka 利用本地磁盘实现高可靠性存储,为业务逻辑提供了无限流式存储的抽象。所有数据按照特定逻辑存储在各节点的磁盘上,这种设计通常称为 Shared Nothing 架构。
本地磁盘不具备伸缩性,所以 Shared Nothing 架构通常通过横向扩展来提供更高的吞吐。然后,共享的云存储已变得高度弹性,容量近乎“无限”,采用共享存储架构更容易低成本地发挥出云存储的全部能力。
可靠性与可用性分离
Apache Kafka 原生支持多副本机制,通过副本冗余确保数据高可靠性,同时,在不同的副本之间通过 Leader 选举机制实现快速的故障转移,从而提高系统可用性。
在云环境中,EBS 内置了 3 副本存储机制,如果 Kafka 再实现一套 3 副本存储,将导致数据被存储 9 份,显著提高了存储、带宽和计算成本。AutoMQ 认为,云原生的 Kafka 不再需要多副本机制来同时提供可靠性和可用性,通过分而治之的方法,将可靠性分离至云存储,单独提供可用性实现是真正的云原生做法。
存储选型
公有云头部厂商提供了多种成熟的存储服务,大致可以分为以下三类:
-
对象存储: 这是云厂商提供的最大规模的存储服务,具有低成本和大数据规模等优点,是现代数据仓库和数据湖的基础,例如 AWS S3。
-
块存储: 这是云厂商提供的高性能块存储服务,例如 AWS EBS,特点是低延迟、高性能和较高的成本。
-
文件存储 :主要使用 NFS 协议的共享文件存储服务,提供灵活的存储空间和吞吐能力,例如 AWS EFS,AWS FSx。
不同的云厂商在共享存储服务上存在一些细微的差异。AutoMQ 支持多模态的共享存储,将在不同的公有云上选择最佳的存储选项,以实现在所有主流公有云上以共享存储的架构支持多可用区,实现低延迟,低成本,无状态等产品效果。
技术优势
AutoMQ 相较于 Apache Kafka,具备以下优势:
10 倍的成本优势
AutoMQ 全新云原生架构充分利用对象存储 的数据高可用、弹性供给 能力,相比 Apache Kafka 为客户带来** 10 倍 的成本优势** 。
-
使用对象存储作为核心主存储可以显著降低存储成本。
-
无需多副本复制即可实现高可用,节省 2/3 的流量和复制成本。
-
原生支持 Spot 实例、AutoScaling,无需按峰值预留资源。
极致弹性
AutoMQ 将状态存储分离至对象存储服务,确保业务逻辑层完全无状态。AutoMQ 集群能在秒级完成分区迁移和流量重平衡,彻底解决了 Apache Kafka 扩缩容时重平衡缓慢、分区迁移困难的问题。结合云厂商的弹性伸缩组策略,轻松实现集群自适应弹性伸缩。