写点什么

拐点已至? Kafka 如何破局

  • 2024-10-08
    北京
  • 本文字数:2788 字

    阅读完需:约 9 分钟

拐点已至? Kafka 如何破局

前段时间 Current 2024 在 Austin 圆满结束,这是全球范围内 Kafka 和数据流处理领域的顶尖会议。今年是我第三次参加,和往常一样,会议聚集了来自全球的专家。但今年又让人感到分外不同—— Kafka 未来的不确定性明显增加。这个项目将走向何方?其生态系统将如何演变,Kafka 在快速发展的 AI 领域中将扮演什么角色?这些问题在我思考 Kafka 未来时一直萦绕心头。


现代数据架构新需求


大约 13 年前研发于 LinkedIn 的 Kafka ,最初被定位为一个 分布式、持久化、高吞吐量的消息系统,旨在低延迟地收集和传输大量数据。2011 年 Kafka 开源,后来被捐赠给 Apache 基金会,最终演变为现代软件中最成功的项目之一。2014 年,其创始人离开 LinkedIn 创办了 Confluent,该公司于 2021 年上市,并成为数据流处理领域的领导者。然而十多年间技术日新月异,Kafka 如今面临更加复杂的生态。


Kafka 最初被定位为一个分布式、持久、高吞吐量的消息系统。


在 2011 年,Kafka 主要有三个用例:


  • 收集日志数据

  • 将日志数据输入在线应用

  • 将衍生数据部署到生产环境


Kafka 的日志结构设计在这个应用背景下是完全合理的。但随着上下游基础设施、应用程序和数据栈的快速演变,虽然其核心用例至今依然类似,来自现代数据架构的新需求却为 Kafka 带来了新的挑战。



不同应用程序有不同的延迟要求。


新的挑战


  1. 延迟要求多样化:现代系统的延迟需求变得更加两极化。比如金融服务中股票交易对于延迟的需求达到微秒级,而如日志记录或在操作数据库和分析系统之间同步数据等场景,秒级延迟就能满足需要。因此一刀切的解决方案已不再适用,为什么一个使用 Kafka 进行简单日志记录的公司要与用其构建核心低延迟应用的公司支付相同的费用呢?

  2. 批处理系统构建自有数据摄取工具:像 Snowflake 的 Snowpipe、Amazon Redshift 的 noETL 以及最近收购了 PeerDB 的 ClickHouse 等,这些平台现在都提供内置的流数据摄取工具,使得 Kafka 不再是不同环境间移动数据以及将数据输入分析系统的唯一选择。

  3. 云基础设施存储成本降低:像 Amazon S3 这样的对象存储解决方案已经比像 EC2 这样的计算节点解决方案成本显著降低。在优化云上成本的趋势背景下,Kafka 需要拥抱能利用成本更低存储选项的架构,否则其自身可能成为数据管道中的昂贵组件。


鉴于以上挑战,Kafka 不能再依赖其原始架构。它需要演变并适应现代数据生态系统的新需求,以求在云优先趋势化的世界中保持领先。


Kafka 使用成本降至十分之一


Current 2024 上最令人兴奋的消息之一就是 Confluent 收购 WarpStream——一个兼容 Kafka 的系统,可将运行 Kafka 的成本惊人地降低为原来的十分之一。WarpStream 使用 S3 作为主要存储,消除了对本地磁盘的需求,并显著降低了网络传输费用。通过将存储层转移至成本更低的基于云的对象存储,WarpStream 使得 Kafka 更加经济实惠。


收购 WarpStream 的战略目标非常明确——在这个日益崛起的竞争对手干扰市场并迫使所有玩家利润减少之前,先将其拿下。通过将 WarpStream 的高性价比架构整合进 Kafka 生态系统,Confluent 就不会因更便宜的替代品冲击而失去其行业领导地位。


但是,不仅仅只有 WarpStream 在降低 Kafka 的使用成本。以下是其他推动 Kafka 使用成本降低的公司:



Kafka 使用成本必降低是大势所趋,尤其是对于那些仅需要 Kafka 进行日志记录或系统解耦的用户来说。他们通过采用以 S3 作为主要存储层的架构消除了对昂贵本地磁盘的需求,从而轻松降低成本。


进军批处理、拥抱 Iceberg


Kafka 一直是实时流处理的首选工具,但如今 Kafka 必须在批处理领域拥有一席之地。挑战与机遇并存——越来越多的数据仓库和分析数据库正构建自己的数据摄取工具,这意味着用户不一定需要选择 Kafka 。



如果 Kafka 不进军批处理,其在数据生态系统中的重要性可能会逐渐下降。


随着数据架构逐渐转向在 S3 上存储冷数据以节省成本,Kafka 必须重新定位自己,要既能处理实时数据也能处理历史数据。这时 Apache Iceberg 的出现至关重要。Iceberg 是一种用于处理大规模数据集的开放表格格式,迅速成为现代数据湖的重要组成部分。通过拥抱 Iceberg,Kafka 可以让用户无缝存储和查询流数据及批数据。


与其使用 Kafka 保留短期数据,另外使用单独的数仓或湖仓存储历史数据,不如将 Kafka 作为所有数据的中央存储库——无论是流数据还是批数据,通过扩展其能力以处理长期存储而不需要依赖数据保留策略,Kafka 可以演变成真正的数据湖。而 Iceberg 在这一转型中扮演了关键角色,为用户提供了如架构演进、分区和优化查询性能等好处。随着 Iceberg 的广泛采用,组织可以利用它以开放格式查询 Kafka 数据,为流处理和批处理工作负载开启新的用例。


如果不拥抱批处理并与 Iceberg 等集成,Kafka 将可能被能以统一、经济高效的方式同时处理批处理和流处理的系统所取代。Iceberg 弥补这一差距的能力是其在数据工程师和架构师中日益受欢迎的主要原因之一。


拥抱流处理优先的查询引擎


为了充分实现 Kafka 在流处理和批处理领域的潜力,它需要一个流处理优先的查询引擎。虽然像 Trino 这样的批处理优先查询引擎在对大型数据集进行即席查询时表现优秀,但在处理连续查询时却捉襟见肘——而这又是 Kafka 用户的一个关键需求。


几种引擎已经站出来填补了这个空白。RisingWave 和 Flink 是流处理优先引擎的佼佼者,擅长处理实时、不断更新的数据。RisingWave 特别适合在事件流上运行 SQL 查询,使用户能够实时获得洞见,而无需面对传统流处理的复杂性。同样,Flink 的分布式流处理能力使其成为要求低延迟、高吞吐量应用的最优选择之一。


此外,ksqlDB 是 Kafka 的扩展,提供了一个简单的基于 SQL 的接口,用于实时查询和处理 Kafka streams。它与 Kafka 的深度集成,使其成为已在使用 Kafka 生态系统用户的优先选择。



这些流处理优先引擎对于使 Kafka 数据(无论新数据还是历史数据)能够实现即时查询至关重要。通过解锁无缝查询实时和历史数据集的能力,RisingWave、Flink 和 ksqlDB 正在为 Kafka 保持领先地位铺平道路,因为流处理和批处理之间的界限越来越模糊。


结论


像 Warpstream 这样更具成本效益的解决方案的崛起,标志着 Kafka 使用成本的必然降低。此外,扩展批处理功能并支持实时和历史数据查询将是其未来保持领先的关键。如 RisingWave、Flink 和 ksqlDB 这些技术领先的流处理优先查询引擎,是 Kafka 需要充分拥抱的。


通过适应这些发展趋势:降低成本、整合批处理功能并采用流处理优先查询引擎,Kafka 可以在未来数年依旧保持现代数据基础设施中心地位并屹立不倒。


今日好文推荐


下载量超 5000 万的知名应用,开发团队“全军覆没”,从此发版人唯剩老板一个


突发!上交所系统被买崩了?股票交易量火爆挤瘫系统,IT 部门天塌了!


AIGC 使编程平民化,将会是软件行业的一场“灾难”?| 专访 Uncle Bob


一次 App 更新差点要了这家 22 年老牌公司的命:忽视技术债、疯狂裁员降本,CEO 为开发加速无视员工警告


2024-10-08 15:1810302

评论 1 条评论

发布
用户头像
您好,我这边有个数仓开发专家岗,职级p8,工作地点在北京朝阳,有兴趣的话我给您详细介绍
2024-10-08 16:36 · 北京
回复
没有更多了
发现更多内容

go-zero 如何扛住流量冲击(一)

万俊峰Kevin

microservice go-zero goctl Go 语言

接口测试并不只是测试参数和返回值

测试人生路

接口测试

为什么有的专科程序员比本科程序员薪资高?他们之间有多大的区别?

Java架构师迁哥

阿里P8大牛整理的300页图解网络知识+计算机底层操作系统

Java架构之路

Java 编程 程序员 架构 面试

这才是图文并茂:我写了1万多字,就是为了让你了解AQS是怎么运行的

鄙人薛某

Java 并发编程 AQS 并发 ReentrantLock

区块链IM即时社交通讯系统开发,区块链社交平台源码搭建

13530558032

vscode + vim : vscode 全键盘使用方案

lmymirror

vim vscode Spacemacs

微服务架构中的“参天大树”:SpringBoot+SpringCloud+Docker

小Q

Java 学习 容器 面试 微服务

奋力准备一个月成功进字节,来看一下我都看了哪些资料做了哪些准备

小Q

学习 编程 程序员 架构 面试

懵了!一口气问了我18个JVM问题!

yes

面试 JVM

史上最通俗Netty入门长文:基本介绍、环境搭建、动手实战

JackJiang

网络编程 Netty nio 即时通讯 IM

深圳区块链钱包系统开发,区块链钱包app源码

13530558032

区块链币支付系统开发搭建,USDT支付平台源码

13530558032

C++调用Go方法的字符串传递问题及解决方案

华为云开发者联盟

c++ 内存 代码

这4个Java异常框架,很多人竟然还不知道

比伯

Java 编程 架构 面试 计算机

《程序员面试金典》.pdf

田维常

面试

基于Vue实现一个有点意思的拼拼乐小游戏

徐小夕

Java GitHub 开源 H5游戏 H5

解读登录双因子认证(MFA)特性背后的TOTP原理

华为云开发者联盟

算法 totp 密钥

备战2021年金三银四,阿里P8面试官梳理的2020年999道大厂高频Java面试题(附答案)

Java架构之路

Java 编程 程序员 架构 面试

《深入理解java虚拟机》- java内存区域

never say never

JVM笔记 堆内存

SpringBoot-技术专题-Hystrix学习介绍

洛神灬殇

【应用运维】公司业务迭代迅速,运维如何高效进行应用发布?

嘉为蓝鲸

可视化 PaaS 运维自动化 部署与维护 发布

适用初学者的5种Python数据输入技术

华为云开发者联盟

Python 数据 函数

区块链交易所软件,数字货币场外交易系统搭建

13530558032

来不及解释了,快上车!LR.NET开发平台助力企业信息互联

雯雯写代码

影视剪辑类自媒体运营心得:如何抓住观众的痛点

石头IT视角

K3d vs Kind 谁更适合本地研发

郭旭东

Kubernetes k3s kind

7面阿里,最后一面居然挂在了JVM上面!狠下决心恶补JVM知识

Java架构之路

Java 程序员 架构 面试 编程语言

2020年底备战—从技术到面试合集

iOSer

ios 编程 面试

为什么容器内存占用居高不下,频频 OOM

996小迁

Java 架构 容器 面试 k8s

渣本全力以赴33天,四面阿里妈妈(淘宝联盟),拿下实习岗offer

小Q

Java 学习 编程 架构 面试

拐点已至? Kafka 如何破局_实时计算_吴英骏_InfoQ精选文章