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

虽然 Apache Kafka 长期以来一直是流数据的行业标准,但新的创新替代方案正在重塑生态系统。其中之一是 WarpStream,它最近在 Confluent 的所有权下进入了新的篇章。此次收购进一步增强了 WarpStream 提供高性能、云原生数据流的能力,巩固了其作为 Kafka 的可扩展且经济高效的替代方案的地位。本教程将引导您开始使用 WarpStream 和 MinIO,并解释结合使用这些工具如何为您的流媒体架构提供简单性、灵活性和成本节约。
Kafka 的现代替代方案
Kafka 在实时数据处理中的基础作用是不可否认的,但随着时间的推移,管理代理、本地文件存储和 ZooKeeper 操作的复杂性已成为许多人的痛点。WarpStream 通过提供在对象存储上运行的 Kafka 协议兼容平台来应对这些挑战。与需要大量运营开销的 Kafka 不同,WarpStream 更易于管理,并且可以将云部署成本降低多达 10 倍。使用 WarpStream,不需要带有本地磁盘的有状态代理。相反,WarpStream 使用 Agents,即易于扩展和管理的无状态 Go 二进制文件。这些代理可以配置为仅发现同一可用区中的其他代理,从而进一步降低与网络相关的成本,这是基于云的部署的关键因素。WarpStream 对 MinIO 等 S3 兼容存储的依赖增强了性能和可扩展性,而不会增加 JVM 的复杂性,使其成为 Kafka 的理想云原生替代方案。
为什么 MinIO 和 WarpStream 是完美的匹配
与当今的许多企业一样,Confluent 对 WarpStream 的部署模型非常感兴趣,他们称之为自带云 (BYOC)。 这意味着 WarpStream 可以在各种环境中部署数据流解决方案,包括本地、公共云或私有云、co-los 或边缘。通过收购 WarpStream,Confluent 通过集成 WarpStream 的云原生、兼容 Kafka 的工作负载,降低了操作复杂性,扩展了 Confluent 已经令人印象深刻的数据流功能。正如 Confluent 首席执行官 Jay Kreps 所强调的那样,WarpStream 的 BYOC(自带云)模型提供了前所未有的灵活性,这种多功能性对于大规模工作负载(如日志记录、可观测性和馈送数据湖)特别有利。由于 MinIO 也可以部署在数据所在的任何地方,因此将 WarpStream 的 BYOC 架构与 MinIO 的高性能、可扩展的对象存储相结合,为现代数据基础设施创建了一个强大且真正灵活的解决方案,几乎可以部署在任何地方。这种组合为处理 AI/ML 计划所需的大量数据集和复杂数据管道所需的企业提供了灵活性和效率。
延迟和成本注意事项
WarpStream 的成本效益、易用性和灵活性是它的一些主要卖点。但是,请务必注意,这种简单性是以增加延迟为代价的。WarpStream 的 P99 端到端延迟约为 1 秒,而 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 创建一个专用的访问密钥,这样可以避免使用您的根凭证。按照以下说明创建 Access Key:

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

接下来,通过运行以下演示命令来设置 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 的 Enterprise Object Store 带来了强大的工具来优化生产环境。例如,MinIO Enterprise Console 充当“单一管理平台”,用于管理整个存储基础设施,包括跨不同环境(无论是本地、公共云还是边缘)的多个 MinIO 部署。控制台允许对大规模部署进行无缝监控和管理,使其成为大规模使用案例的理想选择。如果您的生产工作负载需要进一步优化,MinIO Enterprise Object Store 中的缓存专为超高性能而构建,利用 DRAM 创建分布式缓存以提高吞吐量,非常适合需要低延迟数据访问的 AI/ML 等要求苛刻的工作负载。这些工具结合在一起,可提供优化大规模生产环境存储基础架构所需的运营效率和可扩展性。
简化云原生时代的数据流
WarpStream 和 MinIO 的结合为数据流提供了现代的云原生解决方案。随着 WarpStream 被 Confluent 收购,基于对象存储的数据流的未来更加充满希望。希望简化其流式架构、降低成本并避免 Kafka 复杂性的组织应该考虑将 WarpStream 视为一个引人注目的替代方案。与 MinIO 配合使用,它可提供现代数据驱动型组织所需的性能、可扩展性和灵活性。
相关文章:
从 Kafka 到 WarpStream: 用 MinIO 简化数据流
虽然 Apache Kafka 长期以来一直是流数据的行业标准,但新的创新替代方案正在重塑生态系统。其中之一是 WarpStream,它最近在 Confluent 的所有权下进入了新的篇章。此次收购进一步增强了 WarpStream 提供高性能、云原生数据流的能力,巩固了其…...
【Gitee自动化测试4】本地Git分支的增删查,本地Git分支中文件的增删查,本地文件的暂存/提交,本地分支的推送
一、流程 本地创建分支,设定连接什么云分支本地创建文件,暂存、提交–>本地分支本地分支推送所有修改–>云仓库 二、分支概念 在版本回退里,每次提交,git都把它们串成一条时间线,这条时间线可以理解为是一个分…...
vue-baidu-map的基本使用
前言 公司项目需求引入百度地图,由于给的时间比较短,所以就用了已经封装好了的vue-baidu-map 一、vue-baidu-map是什么? vue-baidu-map是基于vue.js封装的百度地图组件(官方文档) 二、使用步骤 1.下载插件 //我下载的版本 npm install …...
策略路由控制选路
🐣个人主页 可惜已不在 🐤这篇在这个专栏 华为_可惜已不在的博客-CSDN博客 🐥有用的话就留下一个三连吧😼 目录 一、 实验拓扑 二、 实验简述 三、 实验配置 配置路由信息 配置控制选路 四、 实验验证 一、 实验…...
【数据结构和算法实践-排序-快速排序】
数据结构和算法实践-排序-归并排序 题目My Thought代码示例JAVA-8 题目 排序 My Thought 然后再进行递归,递归要注意两个方面: 一、自我调用 二、终止条件:即函数边界 注意点:树、递归* 代码示例 JAVA-8 public class QuickSo…...
测试面试题:请你分别介绍一下单元测试、集成测试、系统测试、验收测试、回归测试
单元测试:完成最小的软件设计单元(模块)的验证工作,目标是确保模块被正确的编码集成测试:通过测试发现与模块接口有关的问题系统测试:是基于系统整体需求说明书的黑盒类测试,应覆盖系统所有联合…...
回归预测合集|基于灰狼优化21个机器学习和深度学习的数据回归预测Matlab程序 多特征输入单输出
回归预测合集|基于灰狼优化21个机器学习和深度学习的数据回归预测Matlab程序 多特征输入单输出 文章目录 一、清单二、实验结果三、核心代码四、代码获取五、总结 一、清单 基于灰狼优化BP神经网络的数据预测Matlab程序GWO–BP 基于灰狼优化卷积神经网络的数据预测Matlab程序G…...
html/css怎么禁用浏览器自动填写
<input type"text" name"username" autocomplete"off"> <input type"password" name"password" autocomplete"new-password">或者vue: <el-input type"text" v-model"…...
信息安全工程师(22)密码学网络安全应用
前言 密码学在网络安全中的应用极为广泛且深入,它通过多种技术手段确保数据的机密性、完整性和真实性。 一、数据加密 对称加密: 定义:使用相同的密钥进行加密和解密的过程。特点:加密和解密速度快,适用于大数据量的加…...
算法打卡:第十一章 图论part08
今日收获:拓扑排序,dijkstra算法 算法讲解部分均来源于代码随想录 1. 拓扑排序 基础知识: (1)应用场景:给出有向图,将有向图转换为线性的排序就叫拓扑排序(如果图中有环则存在循…...
2024年Gartner主存储平台魔力象限报告 | 华为从领导者象限滑落到挑战者象限
魔力象限报告对比 本周Gartner发布了2024年主存储平台魔力象限报告,主存储用户正在采用平台原生服务功能来实现混合 IT 运营。I&O 领导者应利用这项研究来为任务关键型应用程序规划和执行现代且有弹性的存储基础设施平台。 本次报告中共有10家厂商入选…...
[Python学习日记-31] Python 中的函数(上)
[Python学习日记-31] Python 中的函数(上) 简介 语法定义 函数的参数 简介 引子: 你是某公司的一个高级程序员,现在老板让你写一个监控程序,需要24小时全年无休的监控公司网站服务器的系统状况,当 CPU、…...
工作笔记【四】
对于这种,样式一样,但是图片和字体颜色不一样,动态渲染。 代码: <template><view class"page"><view class"rows" v-for"item in data"><view class"v0"><v…...
ArcEngine C#二次开发图层处理:根据属性分割图层(Split)
需求:仅根据某一属性,分割图层,并以属性值命名图层名称保存。 众所周知,ArcGIS ArcToolbox中通过Split可以实现图形分割一个图层,以属性值命名图层,如下图所示。 本文仅仅依据属性值,将一个shp…...
【二叉平衡搜索树】Treap
前置 本篇是平衡树-treap的补充学习笔记。 Treap - 树堆 学习基础:适合一定基础的:比如,实现了经典二叉搜索树(常用的几个函数写过), 和二叉堆(数组的上浮下沉会写吗?)&a…...
Spring Boot 应用Kafka讲解和案例示范
Kafka 是一款高吞吐量、低延迟的分布式消息系统。本文将详细介绍如何在 Spring Boot 项目中使用 Kafka 进行消息接收与消费,并结合幂等和重试机制,确保消息消费的可靠性和系统的扩展性。我们将以电商交易系统为案例进行深入解析。 1. 系统架构概览 在电…...
以到手价为核心的品牌电商价格监测
在当今竞争激烈的电商时代,品牌的价格监测至关重要。传统的页面价监测已无法满足品牌对渠道管控的需求,而到手价监测则成为品牌控价的关键所在。 力维网络,作为深耕数据监测服务多年的专业机构,拥有自主开发的数据监测系统&#…...
Android中使用RecyclerView制作横向轮播列表及索引点
在Android开发中,RecyclerView是一个非常强大的组件,用于展示列表数据。它不仅支持垂直滚动,还能通过配置不同的LayoutManager实现横向滚动,非常适合用于制作轮播图或横向列表。本文将详细介绍如何使用RecyclerView在Android应用中…...
Llama 3.1 技术研究报告-2
3.3 基础设施、扩展性和效率 我们描述了⽀持Llama 3 405B⼤规模预训练的硬件和基础设施,并讨论了⼏项优化措施,这些措施提⾼了训练效率。 3.3.1 训练基础设施 Llama 1和2模型在Meta的AI研究超级集群(Lee和Sengupta,2022&#x…...
【深度学习】05-RNN循环神经网络-02- RNN循环神经网络的发展历史与演化趋势/LSTM/GRU/Transformer
RNN网络的发展历史与演化趋势 RNN(Recurrent Neural Network,循环神经网络)是一类用于处理序列数据的神经网络,特别擅长捕捉数据的时间或上下文依赖性。在其发展的过程中,不断出现各种改进和变体,以解决不…...
HTML 语义化
目录 HTML 语义化HTML5 新特性HTML 语义化的好处语义化标签的使用场景最佳实践 HTML 语义化 HTML5 新特性 标准答案: 语义化标签: <header>:页头<nav>:导航<main>:主要内容<article>&#x…...
Linux 文件类型,目录与路径,文件与目录管理
文件类型 后面的字符表示文件类型标志 普通文件:-(纯文本文件,二进制文件,数据格式文件) 如文本文件、图片、程序文件等。 目录文件:d(directory) 用来存放其他文件或子目录。 设备…...
Java多线程实现之Callable接口深度解析
Java多线程实现之Callable接口深度解析 一、Callable接口概述1.1 接口定义1.2 与Runnable接口的对比1.3 Future接口与FutureTask类 二、Callable接口的基本使用方法2.1 传统方式实现Callable接口2.2 使用Lambda表达式简化Callable实现2.3 使用FutureTask类执行Callable任务 三、…...
Rust 异步编程
Rust 异步编程 引言 Rust 是一种系统编程语言,以其高性能、安全性以及零成本抽象而著称。在多核处理器成为主流的今天,异步编程成为了一种提高应用性能、优化资源利用的有效手段。本文将深入探讨 Rust 异步编程的核心概念、常用库以及最佳实践。 异步编程基础 什么是异步…...
图表类系列各种样式PPT模版分享
图标图表系列PPT模版,柱状图PPT模版,线状图PPT模版,折线图PPT模版,饼状图PPT模版,雷达图PPT模版,树状图PPT模版 图表类系列各种样式PPT模版分享:图表系列PPT模板https://pan.quark.cn/s/20d40aa…...
python执行测试用例,allure报乱码且未成功生成报告
allure执行测试用例时显示乱码:‘allure’ �����ڲ����ⲿ���Ҳ���ǿ�&am…...
重启Eureka集群中的节点,对已经注册的服务有什么影响
先看答案,如果正确地操作,重启Eureka集群中的节点,对已经注册的服务影响非常小,甚至可以做到无感知。 但如果操作不当,可能会引发短暂的服务发现问题。 下面我们从Eureka的核心工作原理来详细分析这个问题。 Eureka的…...
使用Matplotlib创建炫酷的3D散点图:数据可视化的新维度
文章目录 基础实现代码代码解析进阶技巧1. 自定义点的大小和颜色2. 添加图例和样式美化3. 真实数据应用示例实用技巧与注意事项完整示例(带样式)应用场景在数据科学和可视化领域,三维图形能为我们提供更丰富的数据洞察。本文将手把手教你如何使用Python的Matplotlib库创建引…...
苹果AI眼镜:从“工具”到“社交姿态”的范式革命——重新定义AI交互入口的未来机会
在2025年的AI硬件浪潮中,苹果AI眼镜(Apple Glasses)正在引发一场关于“人机交互形态”的深度思考。它并非简单地替代AirPods或Apple Watch,而是开辟了一个全新的、日常可接受的AI入口。其核心价值不在于功能的堆叠,而在于如何通过形态设计打破社交壁垒,成为用户“全天佩戴…...
Ubuntu系统多网卡多相机IP设置方法
目录 1、硬件情况 2、如何设置网卡和相机IP 2.1 万兆网卡连接交换机,交换机再连相机 2.1.1 网卡设置 2.1.2 相机设置 2.3 万兆网卡直连相机 1、硬件情况 2个网卡n个相机 电脑系统信息,系统版本:Ubuntu22.04.5 LTS;内核版本…...
