从 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,循环神经网络)是一类用于处理序列数据的神经网络,特别擅长捕捉数据的时间或上下文依赖性。在其发展的过程中,不断出现各种改进和变体,以解决不…...
【Linux】shell脚本忽略错误继续执行
在 shell 脚本中,可以使用 set -e 命令来设置脚本在遇到错误时退出执行。如果你希望脚本忽略错误并继续执行,可以在脚本开头添加 set e 命令来取消该设置。 举例1 #!/bin/bash# 取消 set -e 的设置 set e# 执行命令,并忽略错误 rm somefile…...
基于FPGA的PID算法学习———实现PID比例控制算法
基于FPGA的PID算法学习 前言一、PID算法分析二、PID仿真分析1. PID代码2.PI代码3.P代码4.顶层5.测试文件6.仿真波形 总结 前言 学习内容:参考网站: PID算法控制 PID即:Proportional(比例)、Integral(积分&…...
React Native 开发环境搭建(全平台详解)
React Native 开发环境搭建(全平台详解) 在开始使用 React Native 开发移动应用之前,正确设置开发环境是至关重要的一步。本文将为你提供一份全面的指南,涵盖 macOS 和 Windows 平台的配置步骤,如何在 Android 和 iOS…...
理解 MCP 工作流:使用 Ollama 和 LangChain 构建本地 MCP 客户端
🌟 什么是 MCP? 模型控制协议 (MCP) 是一种创新的协议,旨在无缝连接 AI 模型与应用程序。 MCP 是一个开源协议,它标准化了我们的 LLM 应用程序连接所需工具和数据源并与之协作的方式。 可以把它想象成你的 AI 模型 和想要使用它…...
JVM垃圾回收机制全解析
Java虚拟机(JVM)中的垃圾收集器(Garbage Collector,简称GC)是用于自动管理内存的机制。它负责识别和清除不再被程序使用的对象,从而释放内存空间,避免内存泄漏和内存溢出等问题。垃圾收集器在Ja…...
linux arm系统烧录
1、打开瑞芯微程序 2、按住linux arm 的 recover按键 插入电源 3、当瑞芯微检测到有设备 4、松开recover按键 5、选择升级固件 6、点击固件选择本地刷机的linux arm 镜像 7、点击升级 (忘了有没有这步了 估计有) 刷机程序 和 镜像 就不提供了。要刷的时…...
Spring Boot+Neo4j知识图谱实战:3步搭建智能关系网络!
一、引言 在数据驱动的背景下,知识图谱凭借其高效的信息组织能力,正逐步成为各行业应用的关键技术。本文聚焦 Spring Boot与Neo4j图数据库的技术结合,探讨知识图谱开发的实现细节,帮助读者掌握该技术栈在实际项目中的落地方法。 …...
MySQL账号权限管理指南:安全创建账户与精细授权技巧
在MySQL数据库管理中,合理创建用户账号并分配精确权限是保障数据安全的核心环节。直接使用root账号进行所有操作不仅危险且难以审计操作行为。今天我们来全面解析MySQL账号创建与权限分配的专业方法。 一、为何需要创建独立账号? 最小权限原则…...
重启Eureka集群中的节点,对已经注册的服务有什么影响
先看答案,如果正确地操作,重启Eureka集群中的节点,对已经注册的服务影响非常小,甚至可以做到无感知。 但如果操作不当,可能会引发短暂的服务发现问题。 下面我们从Eureka的核心工作原理来详细分析这个问题。 Eureka的…...
python报错No module named ‘tensorflow.keras‘
是由于不同版本的tensorflow下的keras所在的路径不同,结合所安装的tensorflow的目录结构修改from语句即可。 原语句: from tensorflow.keras.layers import Conv1D, MaxPooling1D, LSTM, Dense 修改后: from tensorflow.python.keras.lay…...
