我在我的Spring项目中使用Kafka-streams-binder。Kafka流应用程序使用6分钟的滑动窗口对结果进行汇总和分析。但问题是聚合操作正在产生重复的结果。
我想要抑制中间结果,并且只在应用程序的窗口结束后才发布。可以通过Kafka 2.1.1中的Kafka .supress()操作来实现。但是Spring版本没有最新的kafka使用这种功能。
项目依赖项
2.1.9.RELEASE Greenwich.SR3
任何抑制中间结果的替代方案都是有帮助的。
发布于 2019-11-29 10:57:03
任何抑制中间结果的替代办法都是有帮助的。
在之前版本的Kafka流中,没有提供与最近引入的抑制特性相同行为的等效功能。
您能得到的最接近的是配置您的Kafka流应用程序的记录缓存(如cache.max.bytes.buffering)和commit.interval.ms,以减少您将看到的“中间”更新的数量。但这不会完全删除任何此类更新,不像新的抑制功能。
发布于 2019-11-29 12:52:49
您可以覆盖卡夫卡客户端和卡夫卡流版本,如Apache Kafka春季附录参考手册中所述。
如果您没有在测试中使用嵌入式kafka代理,您只需要覆盖kafka客户端和流。
<dependency>
<groupId>org.apache.kafka</groupId>
<artifactId>kafka-clients</artifactId>
<version>2.1.1</version>
</dependency>
<dependency>
<groupId>org.apache.kafka</groupId>
<artifactId>kafka-streams</artifactId>
<version>2.1.1</version>
</dependency>https://stackoverflow.com/questions/59101859
复制相似问题