从 Kafka 到 WarpStream:使用 MinIO 简化数据流

From Kafka to WarpStream: Simplifying Data Streaming with MinIO

虽然 Apache Kafka 长期以来一直是流式数据的行业标准,但新的创新替代方案正在重塑生态系统。其中之一是 WarpStream,它最近在 Confluent 的所有权下进入了一个新篇章。此次收购进一步增强了 WarpStream 提供高性能、云原生数据流的能力,巩固了其作为 Kafka 可扩展且经济高效替代方案的地位。本教程将引导您开始使用 WarpStream 和 MinIO,并解释如何将这些工具结合起来可以为您的流式架构带来简单性、灵活性和成本节约。

Kafka 的现代替代方案

Kafka 在实时数据处理中的基础性作用是不可否认的,但随着时间的推移,管理代理、本地文件存储和 ZooKeeper 操作的复杂性已成为许多人的痛点。WarpStream 通过提供一个在对象存储上运行的与 Kafka 协议兼容的平台来解决这些挑战。与需要大量运营开销的 Kafka 不同,WarpStream 的管理要简单得多,并且 可以将云部署成本降低高达十倍。

使用 WarpStream,无需使用带有本地磁盘的有状态代理。相反,WarpStream 使用代理,这些代理是无状态的 Go 二进制文件,易于扩展和管理。可以将这些代理配置为仅发现同一可用区内的其他代理,从而进一步降低与网络相关的成本——对于基于云的部署而言,这是一个关键因素。WarpStream 对 S3 兼容存储(如 MinIO)的依赖增强了性能和可扩展性,而无需添加 JVM 的复杂性,使其成为 Kafka 的理想云原生替代方案。

为什么 MinIO 和 WarpStream 是完美匹配

与当今许多企业一样,Confluent 对 WarpStream 的部署模式非常感兴趣,他们称之为 自带云 (BYOC)。这意味着 WarpStream 可以跨各种环境(本地、公有云或私有云、托管服务或边缘)部署数据流解决方案。通过收购 WarpStream,Confluent 通过将 WarpStream 的云原生、与 Kafka 兼容的工作负载与降低的运营复杂性相结合,扩展了 Confluent 已经令人印象深刻的数据流功能。正如 Jay Kreps 所强调的,Confluent 的首席执行官,WarpStream 的 BYOC(自带云)模式提供了前所未有的灵活性。这种多功能性对于日志记录、可观察性和为数据湖提供数据等大型工作负载特别有利。

由于 MinIO 也可以在您的数据所在位置进行部署,因此将 WarpStream 的 BYOC 架构与 MinIO 的高性能、可扩展的对象存储相结合,为现代数据基础设施创建了一个强大且真正灵活的解决方案,可以几乎在任何地方部署。这种组合为处理庞大数据集和复杂数据管道的必要企业提供了灵活性,这些管道是 AI/ML 计划所需要的。

延迟和成本考量

WarpStream 的成本效益、易用性和灵活性是其主要卖点。但是,需要注意的是,这种简单性是以增加延迟为代价的。WarpStream 的 P99 端到端延迟约为一秒,而 Kafka 集群可以达到两位数毫秒的低延迟。值得庆幸的是,有一些方法可以降低这种延迟,例如降低 batchTimeout 设置。

设置 MinIO 和 WarpStream

要使用 MinIO 开始一个开发环境,请使用以下命令创建一个单节点 MinIO 服务器

mkdir -p ${HOME}/minio/data
docker run \
   -p 9000:9000 \
   -p 9090:9090 \
   --user $(id -u):$(id -g) \
   --name minio1 \
   -e "MINIO_ROOT_USER=ROOTUSER" \
   -e "MINIO_ROOT_PASSWORD=CHANGEME123" \
   -v ${HOME}/minio/data:/data \
   quay.io/minio/minio server /data --console-address ":9090"

MinIO 启动并运行后,为 WarpStream 创建一个专用的访问密钥,避免使用您的根凭据。按照以下说明创建访问密钥: 

     
       

接下来,您需要创建一个存储桶。请按照以下说明继续

接下来,通过运行以下演示命令设置 WarpStream

AWS_ACCESS_KEY_ID="your-access-key" \
AWS_SECRET_ACCESS_KEY="your-secret-key" \
warpstream demo -bucketURL "s3://<your-bucket>?region=us-east-1&s3ForcePathStyle=true&endpoint=http://127.0.0.1:9000"

运行代理后,启动 WarpStream 开发者控制台。您运行命令的终端将显示链接。

WarpStream 控制台允许您查看集群类型、记录计数、未压缩字节和批处理计数的时间指标,以及与代理相关的统计信息(例如 CPU 使用率)。

warpstream 演示命令创建一个包含 1 小时游乐场和一个内存内生产者的演示帐户,该生产者会定期生成小型 JSON 文档。在进行演示时,您可以监控您的 MinIO 存储桶以查看 WarpStream 创建的文件。

部署到生产环境

准备好转到生产环境时,WarpStream 提供了用于 Kubernetes 部署的 Helm 图表,简化了扩展工作。至关重要的是,MinIO 的企业对象存储 为优化生产环境带来了强大的工具。例如,MinIO 企业控制台 充当管理整个存储基础设施的“单一窗口”,包括跨不同环境(无论是本地、公有云还是边缘)的多个 MinIO 部署。控制台允许无缝监控和管理大型部署,使其成为大规模用例的理想选择。

如果您的生产工作负载需要进一步优化,MinIO 企业对象存储中的缓存 旨在实现超高性能,利用 DRAM 创建一个分布式缓存,从而提高吞吐量——非常适合像 AI/ML 这样需要低延迟数据访问的苛刻工作负载。这些工具相结合,为您提供了优化大型生产环境存储基础设施所需的运营效率和可扩展性。

简化云原生时代的流式数据

WarpStream 和 MinIO 的组合为流式数据提供了一个现代的云原生解决方案。随着 Confluent 收购 WarpStream,在对象存储之上进行流式数据处理的未来更加光明。希望简化流式架构、降低成本并避免 Kafka 复杂性的组织应将 WarpStream 视为一个引人注目的替代方案。与 MinIO 相结合,它提供了现代数据驱动组织所需的性能、可扩展性和灵活性。

如果您有任何问题或需要帮助,请通过 hello@min.io 或 Slack 与我们联系——我们随时为您提供帮助,让您顺利完成流式数据处理之旅。