使用Spring Cloud Stream和Apache Kafka Streams进行流处理。第6部分 - 状态存储和交互式查询

工程 | Soby Chacko | 2019年12月9日 | ...

第1部分 - 编程模型 第2部分 - 编程模型续 第3部分 - 数据反序列化和序列化 第4部分 - 错误处理 第5部分 - 应用程序自定义

在本部分(本系列的第六部分也是最后一部分)中,我们将研究Spring Cloud Stream Kafka Streams绑定器如何支持Kafka Streams中的状态存储和交互式查询。

命名状态存储

当您需要在应用程序中维护状态时,Kafka Streams允许您将该状态信息物化到一个命名的状态存储中。Kafka Streams中有一些操作需要它来跟踪状态,例如countaggregatereduce、各种windowing操作等等。在大多数情况下,Kafka Streams使用一个名为RocksDB的特殊数据库来维护此状态存储(除非您明确更改……

使用Spring Cloud Stream和Apache Kafka Streams进行流处理。第5部分 - 应用程序自定义

工程 | Soby Chacko | 2019年12月6日 | ...

第1部分 - 编程模型 第2部分 - 编程模型续 第3部分 - 数据反序列化和序列化 第4部分 - 错误处理

在这篇博客文章中,我们将继续讨论Spring Cloud Stream对Kafka Streams的支持。我们将详细阐述自定义Kafka Streams应用程序的方法。

自定义StreamsBuilderFactoryBean

Kafka Streams绑定器使用StreamsBuilderFactoryBean(由Spring for Apache Kafka项目提供)来构建StreamsBuilder对象,它是Kafka Streams应用程序的基础。此工厂bean是一个Spring生命周期bean。通常,由于各种原因,必须在启动此工厂bean之前对其进行自定义。如关于错误处理的上一篇博客文章所述,您需要自定义StreamsBuilderFactoryBean……

使用Spring Cloud Stream和Apache Kafka Streams进行流处理。第4部分 - 错误处理

工程 | Soby Chacko | 2019年12月5日 | ...

第1部分 - 编程模型 第2部分 - 编程模型续 第3部分 - 数据反序列化和序列化

在本系列关于使用Spring Cloud Stream和Kafka Streams编写流处理应用程序的文章中,我们将继续讨论Kafka Streams的Spring Cloud Stream绑定器,在这篇博客文章中,我们将研究Kafka Streams绑定器中可用的各种错误处理策略。

Kafka Streams中的错误处理主要集中在输入端的反序列化过程中和输出端的生产过程中发生的错误。

处理反序列化异常

Kafka Streams允许您注册反序列化异常处理程序。默认行为是,当出现反序列化异常时,它会记录该错误并使应用程序失败(LogAndFailExceptionHandler)。它还允许您记录并跳过记录并继续应用程序(LogAndContinueExceptionHandler)。通常,您提供相应的……

使用Spring Cloud Stream和Apache Kafka Streams进行流处理。第3部分 - 数据反序列化和序列化

工程 | Soby Chacko | 2019年12月4日 | ...

第1部分 - 编程模型 第2部分 - 编程模型续

在本系列关于使用Spring Cloud Stream和Kafka Streams编写流处理应用程序的文章中,我们将延续前两篇博客文章的内容,现在我们将了解这些应用程序如何处理输入端的反序列化和输出端的序列化。

Kafka Streams中的所有三种主要高级类型 - KStream<K,V>KTable<K,V>GlobalKTable<K,V> - 都使用键和值。

使用Spring Cloud Stream Kafka Streams支持,键总是使用原生Serde机制进行反序列化和序列化。Serde是一个容器对象,它提供反序列化器和……

使用Spring Cloud Stream和Apache Kafka Streams进行流处理。第2部分 - 编程模型续

工程 | Soby Chacko | 2019年12月3日 | ...

在我们之前的博客文章中介绍了使用Spring Cloud Stream和Kafka Streams编写流应用程序的基本函数式编程模型之后,在本部分中,我们将进一步探讨该编程模型。

让我们来看几个场景。

场景1:单个输入和输出绑定

如果您的应用程序从单个输入绑定消费数据并向输出绑定生成数据,则可以使用Java的Function接口来实现。请记住,此处的绑定不一定是映射到单个输入Kafka主题,因为主题可能是……

本周Spring - 2019年12月3日

工程 | Josh Long | 2019年12月3日 | ...

大家好,Spring粉丝们!你们能相信吗——我无法相信——我们已经到了2019年12月?新年之前的最后一个月份?这个十年中的最后一个月份?难以置信!我甚至无法想象我们如何如此迅速地走到这一步,但我们做到了,这很棒。我从2011年1月的第一周就开始撰写《本周Spring》,所以我们很快就要迎来《本周Spring》的9周年了!

在我写这篇文章的时候,我正在加拿大多伦多,这是2019年SpringOne巡回赛的最后一站。我很高兴做了一个两小时的演讲,介绍了响应式Spring广阔世界中的各种内容……

使用Spring Cloud Stream和Apache Kafka Streams进行流处理。第一部分 - 编程模型

工程 | Soby Chacko | 2019年12月2日 | ...

这是博客文章系列的第一篇,我们将探讨如何使用Spring Cloud Stream和Kafka Streams编写流处理应用程序。

Spring Cloud Stream Horsham版本 (3.0.0) 对应用程序如何使用Kafka和Kafka Streams的绑定程序利用Apache Kafka进行了多项更改。此版本带来的主要增强功能之一是,通过使用完全函数式编程范式编写应用程序的一流支持。这篇博客文章介绍了如何使用这种函数式编程模型来开发流……

Bootiful播客:Spring Tools负责人Martin Lippert

工程 | Josh Long | 2019年11月29日 | ...

大家好,Spring粉丝们!在今天的节目中,Josh Long(@starbuxman)与Spring Tools负责人Martin Lippert(@martinlippert)讨论了他Pivotal和Spring团队的工作经历,他在Spring Tools上的工作,以及他在语言服务器上的工作,这些语言服务器现在作为Spring用户使用Microsoft的Visual Studio Code、emacs和Atom等工具的基础集成。

感谢各位听众,祝你们感恩节快乐!

本周Spring - 2019年11月26日

工程 | Josh Long | 2019年11月26日 | ...

大家好,Spring粉丝们!欢迎来到又一期《本周Spring》!本周,我在日本东京参加Pivotal Summit Japan活动。由于家庭紧急情况,我遗憾地错过了中国和韩国的活动,所以很高兴能够参加这次巡演的最后一站,然后返回加利福尼亚州与家人一起庆祝感恩节。

说到这个……美国感恩节快到了。感恩节是美国人反思我们感激之情的时候。我认为我代表整个Spring团队发言时说,我们非常感谢您……

获取Spring通讯

通过Spring通讯保持联系

订阅

领先一步

VMware提供培训和认证,以加速您的进步。

了解更多

获取支持

Tanzu Spring在一个简单的订阅中提供对OpenJDK™、Spring和Apache Tomcat®的支持和二进制文件。

了解更多

即将举行的活动

查看Spring社区中所有即将举行的活动。

查看全部