Apache Kafka creator 饶军谈Kafka未来规划

百家 作者:InfoQ 2018-03-27 05:19:03
Kafka最初由 LinkedIn开发,并于 2011年初开源。2012年 10月从 Apache Incubator毕业。2014年,Kafka项目的几位创始人 Jay Kreps、Neha Narkhede和 Jun Rao(饶军)离开 LinkedIn,创立了 Confluent公司。

Kafka 最初被设计为一款高度可伸缩的消息系统;而今,它已成为一个全特性的分布式流处理平台,支持流数据的发布订阅、存储和处理。目前有大量公司将 Apache Kafka用到了关键业务中。

在即将于 4月 20日举行的 QCon全球软件开发大会(北京站)上,我们有幸邀请到 Confluent的联合创始人、Apache Kafka项目委员会主席(PMC chair)饶军老师,分享《Apache Kafka的过去、现在和未来》。我们在会前采访了饶军老师,识别二维码快速了解演讲内容。

QCon:您在 Confluent的主要工作职责是什么?

我在 Confluent主要做三件事。

一是 Apache Kafka上的开发,不过现在直接写代码的机会比较少了,大多数时间花在新功能的设计和代码评审上。

二是把 Kafka上的知识传播给 Confluent的不同部门,例如技术支持、咨询、培训和云服务等。

另外,我有时也会给一些客户做上门咨询。

QCon:你们曾提到希望流式处理成为主流的开发模式,让流式平台成为现代数字业务的中心系统,为了实现这个目标你们目前做了哪些努力,未来有哪些规划?

我们从 2015年开始发布 Kafka Streams. 这是一个基于 Kafka的流处理平台。和其他开源流处理平台比起来,Kafka Streams有如下几个特点。

第一,它是 Apache Kafka的一部分。因此,它和 Kafka的订阅消息系统结合紧密, 能够更有效地利用 Kafka的核心功能(例如 compacted topic)。每四个月 Kafka发布新版本,都会有对应的 Kafka Streams的新版本利用到新增加的功能。其他开源流处理平台更新 Kafka库的速度一般没有那么快。

第二, Kafka Streams设计为一个轻便的客户端库。很容易嵌入在应用程序内,非常适合微服务开发。

第三, Kafka Streams的设计里中到了本地存储,使流处理过程中的状态更新效率更高。

2017年,我们发布了 KSQL。有了 KSQL,非程序员也可以开发流处理应用。

未来我们会在这两个方向继续发展。

QCon:去年 8月你们公布了流数据引擎 KSQL,从开源至今目前都有哪些变化?

过去 6个月,我们主要增加了 KSQL的稳定性和可使用性。 今年 3月,我们刚刚宣布 KSQL的第一个正式版,意味着 KSQL可以开始上线使用了。其他 KSQL变化包括 Avro支持、在线监视,以及一些新的分析函数。

QCon:为什么说 Kafka构建的流优先的数据架构愿景中,KSQL是很重要的组成部分?

饶军:Kafka Streams主要面向 Java开发者。KSQL的包括的面更广。不懂 Java,甚至不懂程序语言的技术工作者,也可以使用 KSQL进行流处理开发。这可以解放更多的技术工作者,推进数据的民主化。

传统数据库在服务端不但做数据存储,而且还做数据处理。在数据处理逐渐增加后,服务端往往会成为瓶颈. Kafka解决这个问题的方法是把存储和处理分开。Kafka的订阅消息系统负责存储。KSQL/KStreams负责处理。这样的设计结构可以支持更大规模的实时数据处理。

QCon:能否谈谈围绕 Kafka的可用性提升上,未来计划在哪些方面增强?能否谈谈接下来的 Kafka路线规划?

我简要介绍一下 Kafka的订阅消息系统上的未来规划。我们计划继续增强 Kafka的在线扩展能力。当消费端成为瓶颈时,最简单的方法是增加 topic的分区数量,从而增加消费端的并行度。

未来我们想支持超过百万级分区数量,并且可以让用户自由增加分区。我们还计划增强 Kafka在多数据中心的支持。例如,多数据中心可能会增加一些不确定性。我们在考虑如何减少生产端到消费端的延迟。

QCon:2016年 RethinkDB宣布倒闭,2017年 Docker剥离 Moby等案例给您带来了怎样的思考?您是如何看待开源产品的商业化的?

我觉得未来的趋势是,很多基础软件都将是开源的。开源产品的商业化有挑战,但也有机会。Confluent在去年发布了 Confluent Cloud。它提供 Apache Kafka及其他相关系统的云端运行支持。这将为用户提供更多价值。

QCon:研发企业产品是否是平衡开源社区、投资方、自身企业发展的唯一手段?您认为如何避免开源产品走向封闭?

研发企业产品并不是唯一的手段。前边提到的云端服务也是一个。避免开源产品走向封闭并不像想象中的那么难。如果一个功能会大幅增加软件的使用度,最好的办法就是将其开源,使用者的群体增加了,客户的群体自然增加了。

更多细节,饶军老师会在 QCon北京现场分享。另外,我们还邀请到 Pinterest广告系统架构工程师陈博玚,分享用 Kafka Streams搭建实时广告消费系统的经验,识别二维码或点击「 阅读原文 」了解更多。

目前大会9折报名中,立减 680元。有任何问题欢迎咨询票务经理 Hanna,电话:010-84782011,微信:qcon-0410。

关注公众号:拾黑(shiheibook)了解更多

[广告]赞助链接:

四季很好,只要有你,文娱排行榜:https://www.yaopaiming.com/
让资讯触达的更精准有趣:https://www.0xu.cn/

公众号 关注网络尖刀微信公众号
随时掌握互联网精彩
赞助链接