大家好,我是贝克街的捉虫师呀!
最近有没有小伙伴跟我一样,被Kafka的存储成本搞得焦头烂额?尤其是在云上,EBS存储、跨可用区流量,再加上为了应对峰值而不得不做的过度配置,简直就是吞金兽! 难道就没有什么办法能让Kafka既能保证性能,又能大幅降低成本吗? 答案是:当然有!今天给大家介绍一个我最近发现的宝藏开源项目——AutoMQ, 它可以让你的Kafka直接跑在S3上,号称能节省高达90%的成本!
项目概述
AutoMQ是一个无状态的Kafka替代方案。 它的核心在于将Kafka的存储层迁移到了S3对象存储上。 想象一下,你不再需要为Kafka Broker配备昂贵的磁盘,而是直接利用云厂商提供的廉价、高可用的对象存储服务。 这样一来,不仅节省了存储成本,还解决了Kafka集群难以弹性伸缩的问题. AutoMQ完全兼容Kafka API,你可以像使用原生Kafka一样使用AutoMQ,无需修改任何代码.
这个项目是开源的,主要使用Java语言开发 [项目Readme]。 通过巧妙地改造Kafka的存储引擎,实现了在S3上的高效读写, 真正做到了“存算分离”。
项目数据
- GitHub Star: 5995 (今日新增52)
- 主要开发语言: Java
- 主要贡献者: AutoMQ [项目Readme]
- 项目状态: 积极维护中
从GitHub的Star增长趋势来看,AutoMQ正受到越来越多的关注。 作为一个新兴的Kafka替代方案,它的潜力不容小觑。
功能亮点
- 🚀 10倍成本节约: AutoMQ通过将数据存储在S3上,极大地降低了存储成本,官方宣称可以节省高达90%的云上Kafka成本。这对于有大量数据存储需求的场景来说,简直是福音。
- 💡 无状态 Broker: AutoMQ Broker是无状态的,可以快速弹性伸缩. 妈妈再也不用担心我的Broker因为磁盘空间不足而宕机了!
- 🌐 零跨可用区流量: AutoMQ利用对象存储服务,消除了跨可用区流量成本. 在云上部署Kafka,跨可用区流量可是很大的一笔开销。
- 💪 100% Kafka 兼容: AutoMQ完全兼容 Kafka API,无缝迁移,无需修改任何现有 Kafka 客户端代码. 这意味着你可以平滑地从 Kafka 迁移到 AutoMQ,无需担心兼容性问题。
- ⚖️ 自动负载均衡: AutoMQ 内置了自动负载均衡组件,可以自动调度分区和网络流量,无需手动重新分配分区. 这大大简化了运维工作。
- 📊 内置 Metrics: AutoMQ 原生支持 Prometheus 和 OpenTelemetry 指标,方便监控和告警.
安装与使用
在开始安装 AutoMQ 之前,请确保你已经安装了以下环境:
- JDK 17+
- Docker
- Docker Compose
安装步骤:
- 克隆 AutoMQ 代码仓库:
git clone https://github.com/AutoMQ/automq.git cd automq
-
使用 Docker Compose 启动 AutoMQ 集群 (单节点,仅用于测试):
docker compose -f docker/docker-compose.yaml up -d
这个命令会启动一个 AutoMQ 节点,同时也会启动 MinIO 作为 S3 存储。
- 测试 AutoMQ:
docker run --network automq_net automqinc/automq:latest /bin/bash -c \ "/opt/automq/kafka/bin/kafka-producer-perf-test.sh --topic test-topic --num-records=1024000 --throughput 5120 --record-size 1024 \ --producer-props bootstrap.servers=server1:9092 linger.ms=100 batch.size=524288 buffer.memory=134217728 max.request.size=67108864"
- 停止 AutoMQ 集群:
docker compose -f docker/docker-compose.yaml down
快速入门:
AutoMQ 提供了 automq-kafka-admin.sh
脚本,可以快速启动 AutoMQ 集群。 你只需要提供一个 S3 兼容的 URL,包含 endpoint 和认证信息即可。
常见问题:
-
如果启动失败?
- 检查 Docker 和 Docker Compose 是否正确安装。
- 检查 JDK 版本是否符合要求。
- 查看 Docker 日志,排查具体错误。
使用场景与推荐理由
- 降低 Kafka 云上存储成本: 如果你的 Kafka 集群部署在云上,并且存储成本居高不下,那么 AutoMQ 绝对值得尝试。 它可以显著降低你的存储成本,同时还能提升集群的弹性。
- 构建高可用、可扩展的流处理平台: AutoMQ 的无状态 Broker 架构,使其非常适合构建高可用、可扩展的流处理平台. 你可以根据业务需求,快速地扩容或缩容 Broker 节点,而无需担心数据迁移的问题。
推荐理由:
- 成本优势: 显著降低 Kafka 存储成本。
- 弹性伸缩: 无状态 Broker 架构,易于弹性伸缩。
- 运维简单: 自动负载均衡,简化运维工作。
- 兼容性好: 100% 兼容 Kafka API,无缝迁移。
AutoMQ 与 Redpanda 都是 Kafka 的替代方案,但 AutoMQ 更加注重成本和弹性,通过将存储层迁移到 S3,实现了更低的存储成本和更高的可扩展性。
适合用户群体:
- 需要降低 Kafka 存储成本的企业。
- 需要构建高可用、可扩展流处理平台的团队。
- 希望简化 Kafka 运维工作的开发者。
结语
AutoMQ 是一个非常有潜力的开源项目,它通过将 Kafka 的存储层迁移到 S3,解决了 Kafka 在云上的成本和弹性问题。 如果你正在寻找一个更经济、更易于管理的 Kafka 替代方案,那么 AutoMQ 绝对值得你尝试。
GitHub 链接:
欢迎大家尝试 AutoMQ,并将你的使用体验和反馈分享出来!
Search Sources: