Spring boot 如何抑制Spring Cloud Kafka流中的窗口聚合结果?

Spring boot 如何抑制Spring Cloud Kafka流中的窗口聚合结果?,spring-boot,apache-kafka,spring-cloud,apache-kafka-streams,spring-cloud-stream,Spring Boot,Apache Kafka,Spring Cloud,Apache Kafka Streams,Spring Cloud Stream,我在Spring Cloud项目中使用Kafka streams活页夹。Kafka stream应用程序使用6分钟的滑动窗口来聚合结果和分析模式。但问题是聚合操作正在生成重复的结果 我希望抑制中间结果,并仅在窗口在应用程序中结束后发布。这可以通过卡夫卡2.1.1中的卡夫卡Suppress操作来实现。但是SpringCloud版本没有最新的卡夫卡来使用该功能 项目使用的依赖项 任何抑制中间结果的替代方案都会有所帮助 任何抑制中间结果的替代方案都会有所帮助 在Kafka Streams的早期版本中,

我在Spring Cloud项目中使用Kafka streams活页夹。Kafka stream应用程序使用6分钟的滑动窗口来聚合结果和分析模式。但问题是聚合操作正在生成重复的结果

我希望抑制中间结果,并仅在窗口在应用程序中结束后发布。这可以通过卡夫卡2.1.1中的卡夫卡Suppress操作来实现。但是SpringCloud版本没有最新的卡夫卡来使用该功能

项目使用的依赖项

任何抑制中间结果的替代方案都会有所帮助

任何抑制中间结果的替代方案都会有所帮助

在Kafka Streams的早期版本中,没有提供与之相同的行为的等效功能


您可以获得的最接近于的记录缓存设置,如cache.max.bytes.buffering和commit.interval.ms,以减少您将看到的中间更新的数量。但与新的抑制功能不同,这不会完全删除任何此类更新。

您可以覆盖卡夫卡客户端和卡夫卡流版本,如参考手册中所述

如果在测试中未使用嵌入式kafka代理,则只需覆盖kafka客户端和流

org.apache.kafka 卡夫卡客户 2.1.1 org.apache.kafka 卡夫卡河 2.1.1
从spring引导的角度来看,它不是一种反模式吗?一般来说,是的,但是Kafka的发布节奏比boot更频繁,所以我们spring for Apache Kafka尽最大努力保持兼容性,除非有破坏性的API。IIRC,我不认为你可以用Boot2.1升级到2.2.x或更高版本,但你应该可以用2.1.1。另一方面,您可以升级到Boot 2.2.x和Hoxton.RELEASE,以获得最新和最棒的卡夫卡2.3。如果以下答案之一解决了您的问题,请将其标记为已接受。
<spring-boot.version>2.1.9.RELEASE</spring-boot.version>
<spring-cloud.version>Greenwich.SR3</spring-cloud.version>