由于业界的注意力从笨拙的Hadoop和数据湖转向实时数据流,Apache Kafka继续一路崛起。
Apache Kafka在高歌猛进。正如行业分析公司Redmonk的芬坦·瑞安(Fintan Ryan)特别指出,去年Kafka在开发人员当中的人气指数飙升了260%。自此以后,由于物联网及企业其他方面需要实时数据流变得司空见惯,Kafka的人气越来越旺。Kafka起源于LinkedIn,创始工程团队拉出来后创办了Confluent。自那以后,Confluent就一直是这个Apache项目的主要开发者。
但它不是唯一的开发者。事实上,考虑到Kafka越来越重要,现在提交代码的公司比以往任何时候都要多,包括肯尼·戈尔曼(Kenny Gorman)和埃里克·毕比(Erik Beebe)创办的Eventador,这两人都是现已被Rackspace收购的OjbectRocket的联合创始人。ObjectRocket将MongoDB数据库作为一项服务来提供,而Eventador提供全面托管的Kafka服务,进一步拉低了数据流的门槛。
我与Eventador的这两位联合创始人谈话后清楚地发现,数据流不一样,需要“新的视角”,因为“实时变异的数据带来了新的使用场合和新的可能性。”一旦企业逐渐依赖数据流,就很难再回过头去。明白这一点是关键。
Kafka vs Hadoop
尽管Apache Hadoop很流行,但Hadoop工作流程实在太缓慢了,满足不了现代企业不断变化的需求。的确,正如戈尔曼所说,“许多公司认识到,数据的价值在变得更实时后才更大。”对于更喜欢等待将实时数据流添加到产品和服务的那些公司来说,它们的竞争对手很有可能并不满足于批处理方面取得的既有荣誉。
这个趋势推动着能够可靠、可扩展、尽可能近实时地提供和处理数据的技术日趋采用。市场需要存在专门针对这种架构的新框架。因此,Apache Kafka应运而生。
Apache Spark怎么样呢?正如戈尔曼指出的那样,Spark确实具有实时处理功能,但它并非最适合这项任务。Spark数据流框架仍然被设计成微批处理(micro-batch)。
戈尔曼解释,这样一来只剩下Kafka,它“能够为数据传输和处理框架提供一种真正只需一次的处理解决方案”。除此之外,Apache Flink、Beam及其他额外组件扩展了这些实时管道的功能,以便轻松执行数据变异、聚合和过滤等更多操作。这一切造就了一种成熟的、端到端的实时数据处理系统。
Kafka的发布-订阅(pub-sub)模式
就算Kafka学习和实施起来很费劲,也不重要,其实它学习和实施起来并不费劲。正如戈尔曼特别指出的那样,“Apache Kafka的优点在于,它提供了一套强大的API,但语义又非常简单。它完全很容易上手。”不仅如此,Kafka的API还用许多不同的编程语言来实现,所以你青睐的语言很有可能已有相应的驱动程序可用。
Kafka有一个重要的概念:topic,这其实就是数据流的命名空间。将数据发布给topic很简单,Kafka可以处理路由、可扩展性、持久性和可用性等方面。多个用户协调这些topic的订阅,以获取数据,处理或路由数据。被问及这带来怎样的应用程序开发体验时,戈尔曼强调这并非轻而易举,但简单直观:“构建与Kafka协同运行的应用程序很容易,因为客户端库处理通信的大部分细节,开发人员只要使用API即可发布或订阅数据流。”
要说有什么问题,也不是技术的问题,而是范例(paradigm)的问题。
戈尔曼告诉我,对开发人员来说,真正的窍门在于“用新的视角考虑使用数据流。”原因何在?因为“实时变异的数据带来了新的使用场合和新的可能性。”
不妨看一个具体的例子。客户可能发布关于拼车乘客使用拼车服务的数据。一组消费者分析该数据流,执行机器学习算法以实现动态定价;然后另一组消费者读取数据,向客户的移动设备提供汽车的位置和可用性;另一组消费者向内部仪表板提供数据聚合框架所汇集的拼车数据。Kafka是整个数据架构的核心,它能满足各种各样的业务需求,而且完全实时。
云端Kafka
这对开发人员及其效力的公司来说很好,但是旺盛的Kafka需求无法保证Eventador肯定成功,因为它要与Confluent竞争,而Confluent的亮点在于它是Kafka的创始者。此外,Confluent还宣布了一款云产品,可能会与Eventador的Kafka服务争夺市场份额。
戈尔曼没有因此心烦意乱。正如他描述的那样,真正的区别是,我们并不仅限于Kafka。我们在Kafka最有用途的地方才使用它。我们拥有一种端到端企业级数据流处理框架,基于Apache Kafka和Apache Flink。我们拥有支持AWS S3的连接件、REST接口,与PrestoDB和Jupyter笔记本集成,还拥有支持流行数据库、甚至支持其他数据流系统(比如AWS Kinesis)的连接件。我们提供全面方案,从简单的单一节点,到全面的企业本地配置,不一而足。
此外,鉴于实时数据方面的需求很旺盛,戈尔曼认为,许多不同的玩家自有发展的空间。Eventador不仅可以用Flink及其他组件来互补Kafka,还将Rackspace倡导的口号“出色的客户支持”铭记在心,这首先就要拿出一款做工精良、全面集成的产品。戈尔曼几十年来在全球最大的几家公司搞过运营,继续说:“我们知道怎样运营一款一流的、专业质量的、稳若磐石的Xaas解决方案。”
这个市场仍很新兴,这点他绝对没说错。开发人员仍在努力了解如何将Kafka集成到其项目中。由于需要与数据赛跑的这种形势,Kafka的使用场合一天天在扩大。
戈尔曼指出,然而,多年后,“依赖你基础设施中的数据流会很常见,而不仅仅是一些辅助的工作负载。”这正是他们在倾力打造的未来。“一旦你开始要求数据更实时,脚步就很难停下来。”Eventador、Confluent,无疑还有其他公司正在打造这个实时数据流未来。对于一些人来说,这个未来就在眼前。对于其他人来说,这些初创公司希望早日迎来未来。
文章来源:云头条
由mycat项目发起人Leader-us大师亲自主讲的《Mycat从入门到精通》,mycat可轻易将mysql服务器从单节点传统关系型数据库切分组合为分布式读写分离具备高可用特性的大规模集群,迅速提升负载能力。是当前正在快速走红的集群化开源解决方案之一。掌握mycat,mysql的威力可至少增加一个数量级。点击下方二维码报名课程