Spring Cloud Stream Kafka与KStream聚合

时间:2018-12-11 00:22:56

标签: apache-kafka-streams spring-cloud-stream spring-kafka

从本质上讲,我们的应用程序有一个最终主题,即所有进程最终导致的问题,我需要能够确定何时处理所有消息。我有mongoDB集合中发送的消息数量,但是我必须能够说所有消息都已处理。我一直在尝试使用Spring Cloud Stream(这是我们所有微服务都使用的)和KStream(对我来说是新的),并尝试使用它,因此我通过ID在最后一个主题中汇总消息,并在其中增加字段mongoDB,代表已处理的消息数。但是,对于KStream,我将windowedBy()设置为30秒,它每30秒重置一次计数器(如预期的那样),但是它基本上尝试在每次出现消息时以mongo递增。下面是代码的某些部分,出于测试的考虑,将计数输出到系统中,而不是增加mongo。注意:由于我一直在进行很多更改以使其正常工作,因此窗口部件目前无法正常工作。

signed int

然后是处理器

input
            .groupBy((s, domainEvent) -> domainEvent.getBoardUuid(), Serialized.with(null, domainEventSerde))
            .windowedBy(TimeWindows.of(30000))
            .count(Materialized.as("fileCount")).toStream()
            .process(new ProcessorSupplier<Object, Long>() {
                public Processor<Object, Long> get() {
                    // PopularPageEmailAlert is your custom processor that implements
                    // the `Processor` interface, see further down below.
                    return new testProc("generating counts");
                }
            });

0 个答案:

没有答案