den folgenden Code Gegeben:Warum sehe ich keine Ausgabe von Kafka Streams reduce?
KStream<String, Custom> stream =
builder.stream(Serdes.String(), customSerde, "test_in");
stream
.groupByKey(Serdes.String(), customSerde)
.reduce(new CustomReducer(), "reduction_state")
.print(Serdes.String(), customSerde);
Ich habe eine println
Anweisung innerhalb der Anwendung Methode des Reducer, die erfolgreich druckt, wenn ich die Reduktion stattfinden erwarten. Die oben gezeigte letzte Druckanweisung zeigt jedoch nichts an. Ebenso, wenn ich eine to
Methode anstelle von print
verwende, sehe ich keine Nachrichten im Zielthema.
Was brauche ich nach der reduce-Anweisung, um das Ergebnis der Reduktion zu sehen? Wenn ein Wert an den Eingang gesendet wird, erwarte ich nichts zu sehen. Wenn ein zweiter Wert mit dem gleichen Schlüssel gedrückt wird, erwarte ich, dass der Reduzierer angewendet wird (was er tut), und ich erwarte auch, dass das Ergebnis der Reduktion mit dem nächsten Schritt in der Verarbeitungspipeline fortfährt. Wie beschrieben, sehe ich nichts in den nachfolgenden Schritten der Pipeline und ich verstehe nicht warum.
Versuchen zu einstellen 'StreamConfig.CACHE_MAX_BYTES_BUFFERING_CONFIG' 0. –
@ MatthiasJ.Sax Dank zu schätzen ! Dies löste das Problem für mich, bitte zögern Sie nicht, es als Antwort zu posten, damit ich Ihnen die Punkte vergeben kann. Wenn Sie einen Link zu weiteren Informationen über dieses Konfigurationsdetail und ähnliches hinzufügen könnten, würde ich es auch sehr zu schätzen wissen. – LaserJesus