Gibt es in Kafka Streams integrierte Funktionen, mit denen ein einzelner Eingabestream dynamisch in mehrere Ausgabestreams verbunden werden kann? KStream.branch
ermöglicht Verzweigungen basierend auf echten/falschen Prädikaten, aber das ist nicht ganz das, was ich will. Ich würde jedes eingehendes Protokoll wie das Thema bestimmen es zur Laufzeit gestreamt wird, zum Beispiel ein Protokoll {"date": "2017-01-01"}
wird zum Thema gestreamt wird topic-2017-01-01
und ein Protokoll {"date": "2017-01-02"}
wird zum Thema topic-2017-01-02
gestreamt werden.Dynamische Verbindung eines Kafka-Eingabestreams mit mehreren Ausgabeströmen
Ich könnte forEach
auf dem Strom anrufen, dann an einen Kafka-Hersteller schreiben, aber das scheint nicht sehr elegant. Gibt es einen besseren Weg, dies innerhalb des Streams-Frameworks zu tun?
Was meinst du mit "basierend auf einer Zeichenfolge" - BTW: 'KStream.branch' nimmt mehrere Prädikate (Ihre Frage zeigt, dass Sie dies verpasst haben). So sollte "Zweig" erlauben, zu tun, was Sie wollen. Vielleicht können Sie ein Datenbeispiel geben? –
Ich sollte klarer sein. Mir ist bewusst, dass es mehrere Prädikate braucht - das wäre eine gute Lösung, wenn ich eine feste Anzahl von Themen hätte, die ich streamen möchte. Was ich jedoch tun möchte, ist, in Themen namens 'foo- {date}' zu schreiben. – kellanburket