你听说过Apache Kafka吧?就是那个几乎所有财富 500 强企业都在使用的传奇分布式事件流平台?好吧,现在事情变得更复杂了。Kafka的发源地和“骄傲的父母” LinkedIn已经开始转向其他平台了。这就像看着一位名厨突然对自己的招牌菜失去了兴趣,转而点外卖一样。
等等!不是点外卖!LinkedIn他们直接打造了一家名为Northguard的崭新餐厅。
Kafka死了吗?我们都活在谎言中吗?让我们(温和地)剖析一下现状,看看背后究竟发生了什么。
起源故事:卡夫卡还是个“金童”的时候
2010年,LinkedIn遇到了一个难题。他们拥有9000万用户(还记得当时的用户数量吗?),数据量庞大,不堪重负。他们需要一种方法来实时传输日志和事件。于是,Kafka应运而生。
它具有革命性意义,速度极快,是 Apache 软件基金会的“宠儿”。快进到 2026 年,LinkedIn 如今拥有12 亿用户,每天处理超过32 万亿条记录。
基本上,孩子长大了,但房子却没变大。LinkedIn需要的不仅仅是一栋更大的房子;他们需要的是一套全新的架构。
裂缝为何开始显现
Kafka固然出色,但在LinkedIn这种“行星级”规模下,它开始像个喜怒无常的青少年一样胡闹。这就是工程师们开始寻找替代方案的原因:
Northguard登场:新王者降临
LinkedIn 不仅仅是修补了 Kafka,他们还构建了Northguard。这不仅仅是“Kafka 2.0”,而是一次根本性的重新设计。以下是它获胜原因的简要概述:
1、日志分块(秘诀)
Northguard 不采用整体式分区,而是将日志分割成1GB 的小块。这就像用一堆轻便的小背包代替一个笨重的大行李箱。它使负载均衡变得自动且无缝。
2、去中心化元数据
不再受单控制器瓶颈的限制。Northguard 使用基于 Raft 的状态机将元数据分片分布在整个集群中。它采用高科技、分布式架构,这意味着系统没有可能出现故障的“核心”。
3、Xinfra:神奇的迁移层
你不可能简单地一键切换32万亿条每日记录。LinkedIn 构建了Xinfra,一个虚拟化的发布/订阅层。它就像一个万能遥控器,允许应用程序同时与 Kafka 和 Northguard 通信。
Kafka vs Northguard:巅峰对决
卡夫卡对我们其他人来说已经过时了吗?
答案是否定的。
LinkedIn是个例外。我们大多数人在午饭前都不会处理PB级的数据,对于 99% 的公司而言,Kafka(尤其是像 Confluent 这样的托管版本)仍然是黄金标准。
这就像 LinkedIn 为了追求 200 英里/小时的速度而打造了一辆一级方程式赛车一样。你可能只需要一辆可靠的 SUV 就能上班。除非你今天也迎来了十亿用户,否则别因为 LinkedIn 的一篇工程博客文章就重写你的整个技术栈。
常见问题
1)今天可以下载 Northguard 吗?
不,目前是LinkedIn内部使用的功能。他们暗示过以后会开源,但就目前而言,这是他们的“秘密武器”。
2)我应该停止学习 Kafka 吗?
绝对不是。Kafka 是这个行业的“面包和黄油”,Northguard 是“鱼子酱”。你需要面包才能生存。
3)迁移有多难?
借助 Xinfra 这样的工具,LinkedIn 让 DevOps 看起来轻而易举(他们 90% 的应用都已经基于 Xinfra 了!)。但对我们其他人来说,DevOps 本身就已经够让人困惑了,所以或许应该先从基础知识入手。
结语
LinkedIn 取代 Kafka 是工程史上一个重要的里程碑。它表明,即使是最成功的工具,在被推向极限时也会有其局限性。
Northguard 会不会成为下一个我们所有人都要在三年内学习的大型开源项目?也许会。但就目前而言,我们不妨先赞叹一下这家公司惊人的工程“灵活性”:仅仅因为速度不够快,就替换掉了自己曾经改变世界的发明。
作者丨Cloud With AzeemC 编译丨dbaplus社群
来源丨网址:https://cloudwithazeem.medium.com/linkedin-kafka-replacement-new-streaming-system-76e56073eb97
dbaplus社群欢迎广大技术人员投稿,投稿邮箱:editor@dbaplus.cn