Spring 本周动态 - 2019 年 12 月 10 日

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

大家好,Spring 爱好者们!欢迎来到新一期的《Spring 本周动态》!今天我刚结束在澳大利亚布里斯班的行程,参加了盛大的 YOW! 大会。这真是我在这个星球上最喜欢的大会之一。我觉得自己和其他演讲者相比,像个冒牌货。我强烈推荐这个大会。

我正准备登上飞回旧金山的航班,我们有很多内容要介绍,所以让我们继续!

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

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

第一部分 - 编程模型 第二部分 - 编程模型续篇 第三部分 - 数据反序列化与序列化 第四部分 - 错误处理 第五部分 - 应用定制

在本部分(本系列的第六部分,也是最后一部分)中,我们将深入探讨 Spring Cloud Stream Binder for Kafka Streams 如何支持 Kafka Streams 中的状态存储和交互式查询。

命名状态存储

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

使用 Spring Cloud Stream 和 Apache Kafka Streams 进行流处理。第五部分 - 应用定制

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

第一部分 - 编程模型 第二部分 - 编程模型续篇 第三部分 - 数据反序列化与序列化 第四部分 - 错误处理

在这篇博文中,我们将继续讨论 Spring Cloud Stream 对 Kafka Streams 的支持。我们将详细阐述如何定制 Kafka Streams 应用程序。

定制 StreamsBuilderFactoryBean

Kafka Streams binder 使用 Spring for Apache Kafka 项目提供的 StreamsBuilderFactoryBean 来构建 StreamsBuilder 对象,这是 Kafka Streams 应用程序的基础。这个 factory bean 是一个 Spring 生命周期 bean。通常,出于各种原因,需要在启动之前对这个 factory bean 进行定制。正如前一篇关于错误处理的博文所述,您需要定制 StreamsBuilderFactoryBean

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

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

第一部分 - 编程模型 第二部分 - 编程模型续篇 第三部分 - 数据反序列化与序列化

继续本系列对 Spring Cloud Stream Kafka Streams binder 的探讨,在这篇博文中,我们将研究 Kafka Streams binder 中可用的各种错误处理策略。

Kafka Streams 中的错误处理主要集中在入站时的反序列化错误和出站时的生产错误。

处理反序列化异常

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

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

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

第一部分 - 编程模型 第二部分 - 编程模型续篇

接着前两篇博文,在这个关于使用 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 进行流处理。第二部分 - 编程模型续篇

工程 | 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 Tour 列车的最后一站。我很享受这个时长两小时的演讲,介绍了响应式 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 的绑定器方面引入了一些变化。此版本带来的一个主要增强是为使用完全函数式编程范式编写应用程序提供了第一类支持。这篇博文介绍了如何使用这种函数式编程模型来开发流…

A Bootiful Podcast:Spring Tools 负责人 Martin Lippert

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

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

谢谢亲爱的听众,感恩节快乐!

订阅 Spring 新闻通讯

通过 Spring 新闻通讯保持联系

订阅

快人一步

VMware 提供培训和认证,助您加速前进。

了解更多

获取支持

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

了解更多

近期活动

查看 Spring 社区所有近期活动。

查看全部