一款真正的云原生 Kafka 解决方案。该项目是基于云原生重新设计的新一代 Kafka 发行版。在保持和 Apache Kafka 100%兼容前提下,AutoMQ 可以为用户提供高达 10 倍的成本优势以及百倍的弹性优势,同时支持秒级分区迁移和流量自动重平衡,解决运维痛点。
AutoMQ 特性
云原生
基于云服务构建。每个系统设计决策都会考虑云服务的功能和计费项目,以在云上提供最佳的低延迟、可扩展、可靠且经济高效的 Kafka 服务。
高可靠性
利用云服务的特性,实现 0RPO 和秒级 RTO。
-
AWS:使用 S3 Express One Zone 和 S3 提供 AZ 级灾难恢复。 -
GCP:使用区域 SSD 和云存储提供 AZ 级灾难恢复。 -
Azure:使用区域冗余存储和 blob 存储提供 AZ 级灾难恢复。
无服务器
-
自动扩展监视集群的关键指标并自动扩展/扩展以匹配你的工作负载并实现按需付费。 -
秒级扩展:计算层(代理)是无状态的,可以在秒级内扩展/扩展,这使得 AutoMQ 成为真正的无服务器。了解更多 -
无限扩展:使用云的对象存储作为主存储,永远不用担心存储容量。
无管理
内置自动平衡器组件自动平衡代理之间的分区和网络流量。永远不用担心分区重新平衡。了解更多
成本效益
使用对象存储作为主要存储,设计系统时考虑计费项目,充分利用云服务,所有这些都有助于 AutoMQ,使其比 Apache Kafka 便宜 10 倍。请参阅此报告,了解我们如何将云上的 Apache Kafka 计费削减 90%。
高性能:
-
低延迟:使用 AWS EBS 等云块存储作为持久缓存层来加速写入。 -
高吞吐量:利用预取、批处理和并行来实现高吞吐量。 -
Apache Kafka 的卓越替代品:100% 与大于 0.9.x 的 Apache Kafka 兼容,不会失去它的任何良好功能,但更便宜、更好。
架构
AutoMQ 使用 logSegment 作为 Apache Kafka 的代码方面来融入我们的功能。该架构包括以下主要组件:
-
S3Stream:AutoMQ 提供的基于对象存储的流媒体库。它是 AutoMQ 的核心组件,负责向对象存储读写数据。 -
Stream:Stream 是映射 Apache Kafka 的 logSegment 的抽象。LogSegment 的数据、索引和其他元数据将映射到不同类型的流。 -
持久缓存层:AutoMQ 使用 AWS EBS 等小型云块存储作为持久缓存层来加速写入。请注意,这不是分层存储,AutoMQ 代理可以与持久缓存层完全解耦。 -
流对象:AutoMQ 的数据是按流对象组织的。通过索引通过流对象 id 读取数据。一个流有一个流对象。 -
流集对象:流集对象是小流对象的集合,旨在减少 API 调用时间和元数据大小。
快速开始
基于 Docker
解压 Release 包,进入解压后的目录:
tar zxvf automq-1.0.0_kafka-3.4.0.tgz && cd automq-1.0.0_kafka-3.4.0
可以通过配置 docker-compose.yaml 文件来启动 AutoMQ Kafka 集群。docker/docker-compose.yaml 给出了 1 个 Controller 角色节点和 2 个 Broker 角色节点的文件示例。
-
使用以下命令启动 AutoMQ Kafka 集群:
docker compose -f docker/docker-compose.yaml up -d
使用以下命令销毁 AutoMQ Kafka 集群:
docker compose -f docker/docker-compose.yaml down -v
传送门
开源地址:https://github.com/AutoMQ/automq
-END-
原文始发于微信公众号(开源技术专栏):真正的无服务器 Kafka 解决方案,可最大限度地发挥云的优势
版权声明:本文内容由互联网用户自发贡献,该文观点仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请发送邮件至 举报,一经查实,本站将立刻删除。
文章由极客之音整理,本文链接:https://www.bmabk.com/index.php/post/247241.html