做云市场行业的领导者
欢迎光临本网站
主页 > 阿里云 >

卡夫卡溪买云服务器-流在行动

发布时间:2020-09-22 15:43   来源:维塔尔云    作者:维塔尔云

卡夫卡溪流在行动

Confluent自己的BillBejeck最近完成了Kafka Streams in Action,一本关于用Kafka Streams API构建实时应用程序和微服务的书。这本书预定下个月出版,但曼宁出版社已经同意让我们在融合的博客上分享我对这本书的前言。如果你有兴趣了解更多关于卡夫卡河的知识(你应该是!),这本书是一个很好的开始方法。前言我们见证了一种新的范式的出现,它用于构建现代以数据为中心的应用程序事件驱动体系结构,它由Apache Kafka®提供支持。围绕数据事务构建紧密耦合的请求/响应应用程序的传统方法正被以业务事件为中心的事件驱动应用程序迅速扩展,从而形成了一个响应速度更快、更灵活、解耦的应用程序体系结构。我们现在可以看到事件驱动的应用程序处于每一个行业的下一代体系结构的核心。大型零售商正在围绕连续的事件流重新处理其基本业务流程;汽车公司正在收集和处理互联网连接汽车的实时事件流;银行也在围绕卡夫卡重新思考其基本流程和系统。是什么推动了这种范式的转变?如果请求/响应应用程序和批处理计算已经存在这么长时间了,为什么现在会发生这种情况?首先,企业比过去更加数字化。这种数字化正在迅速超越传统企业软件系统的领域。"物联网"指的是许多变化,但最重要的是,它指的是自动检测发生在物理世界中的事物的过程,从制造过程到汽车到零售库存;曾经被计算机限制的业务方面正在成为连续事件流的来源。第二,在组织内部如何使用数据也有一个转变。在一个只有人类采取行动的世界里,定期的批量计算报告可能会非常快。毕竟,没有人会一天检查一次以上的报告。但是,在一个已经显著数字化的公司里,行动往往不仅由人类采取,而且由软件自动完成,这种延迟毫无意义。这种围绕事件流建模处理的转变实际上使事情变得更简单。大多数现代企业的核心数据最自然地被认为是一个连续的事件流(销售、客户体验、发货等)。很自然,通过事件驱动的应用程序对这些数据的处理和分析将是连续的、实时的。改变的最终驱动力是支持流处理的技术已经变得更好。早期的系统,包括企业消息传递系统和复杂的事件处理引擎,网站云服务器,都存在于这一领域,但它们所能处理的问题类型非常有限。作为构建Apache-Kafka的一部分,我们学到了很多关于如何创建流处理系统的知识,以便它们不仅可以横向扩展到公司范围内的使用,而且还可以使它们的功能真正成为一个超集,而不是批处理可能实现的子集。这一领域仍在迅速发展,但具有前瞻性的公司已经在关键领域实施生产流处理应用程序。apachekafka作为一个支持流处理的事件流平台的兴起,证明了流处理正在成为主流。那么什么是流处理?它在启用事件驱动体系结构中扮演什么角色?流处理是一种数据处理范式,它不把数据看作是保存在静态存储中的东西,而更多地看作是不断流动和被处理的东西。流处理体现在为业务提供动力的事件驱动应用程序中,以及在报告业务的实时分析中。流处理要求我们的思维发生根本性的转变,从命令式思维转向事件思维;一种文化变革,使响应性、事件驱动、可扩展、灵活和实时的应用程序成为可能。在商业中,事件思维使组织能够进行实时、上下文敏感的决策和操作。在技术上,事件思维可以产生更自主和解耦的软件应用程序,从而产生弹性伸缩和可扩展的系统。在这两种情况下,最终的好处是更大的灵活性的业务和业务促进技术。应用事件思维到整个组织是事件驱动架构的基础。流处理是实现这种转换的技术。那么什么是卡夫卡河?我们为什么要建造它?它与其他大数据处理框架有何不同?Kafka Streams是Apache Kafka本地的流处理库,用于在Java中构建事件驱动的应用程序,以处理Apache Kafka主题中的数据。使用这个库的应用程序可以对数据流进行复杂的转换,这些数据流会自动成为容错的,并且透明和弹性地分布在应用程序的实例上。自2016年首次发布0.10版的Apache-Kafka以来,许多公司已经开始生产Kafka流,包括Pinterest、纽约时报、荷兰合作银行、LINE等等。有各种各样的技术、框架和库来构建处理数据流的应用程序。大数据处理框架,如Storm、Flink和Spark都有其优缺点。Kafka的流处理方法,不管是Kafka Streams还是KSQL,都与这些大数据框架有很大的不同。我们使用Kafka Streams和KSQL的目标是使流处理足够简单,使之成为构建响应事件的事件驱动应用程序的自然方式,而不仅仅是一个沉重的"大数据"东西。这是因为我们试图通过将其建模为更快的MapReduce层来构建流处理框架,但是失败了。apachesamza是我们最初使用apachekafka进行流处理的。好吧,从技术上讲,我们的第二次拍摄,因为第一次拍摄的是一个原型,我叫卡夫卡姆。但是apachesamza的采用,即使是在公司内部引入的,也没有如预期的那样成功。原因是这种流处理的大数据方法将其作为一个问题,即在一组机器上复用一组作业。而流处理最自然地表示为事件驱动的应用程序,其中应用程序的业务逻辑嵌入了处理事件流的能力。因此,Kafka的流处理方法(无论是Kafka的Streams API还是KSQL)与这些大数据框架有很大不同。Kafka没有将流处理应用程序建模为大数据框架,而是在REST应用程序之后对其进行建模。与其把流处理想象成一种用于传输数据流的Java大数据处理框架,哪个云服务器,不如将其颠倒过来。在我们的模型中,主要实体根本不是处理代码,而是Kafka中的数据流。Kafka为正确、分布式、容错、有状态的流处理提供了一个版本化、广泛采用的协议。此协议可用于任何语言。其中一个例子是Apache Kafka中的Kafka Streams API,云市场,另一个是KSQL,在Go、.Net、Python、Node等中还有多个这样的例子。每一个都不是那么多代码,而且在任何情况下,代码本质上都是一个实现细节。与REST服务一样,契约是服务的输入和输出,而不是应用程序内部使用的内容。这就是为什么卡夫卡的流处理方法是现代流处理的有力推动者。我相信,以实时事件流和流处理为中心的事件驱动体系结构在未来几年将变得无处不在。技术成熟的公司如Netflix、Uber、Goldman Sachs、Bloomberg和其他公司已经建立了这种大型事件流媒体平台,其中许多都在大规模运行。这是一个大胆的主张,但我认为流处理和事件驱动体系结构的出现将对公司如何像关系数据库那样使用数据产生同样大的影响。不过,德国云服务器,如果您来自请求/响应风格的应用程序和关系数据库,大数据和数据库,那么学习事件思维和构建面向流处理的事件驱动应用程序是一个很大的转变。这本书是了解Kafka流的一个很好的方法,并了解它是如何成为事件驱动应用程序的关键促成因素的。我希望你和我一样喜欢读它!如果您喜欢这篇文章,您可能需要继续使用以下资源:观看KSQL的介绍视频下载Confluent平台并按照快速入门开始使用KSQL开始使用Kafka Streams API来构建自己的实时应用程序和微服务通过Docker浏览Kafka Streams API与Docker的融合教程,并使用我们融合的演示应用程序

上一篇:Apache Kafka和大数据精准获客-Kubernetes入门
下一篇:如何在ksqldb5.返利平台有哪些-0中构建UDF和/或UDAF

分享到:
0
最新资讯
阅读排行