Ich versuche, eine Streaming-Architektur für Streaming-Analysen zu entwerfen. Anforderungen:Externe Systemabfragen während Kafka Stream-Verarbeitung
- RT und NRT-Streaming-Dateneingang
- Stream-Prozessoren eine Finanzanalyse
- RT und NRT Analyse Ausgabestrom
- Referenzdatenanfragen während der Stream-Verarbeitung
Umsetzung I‘ Ich erkunde Kafka und Kafka Streams für Stream-Verarbeitung und RT/NRT-Echtzeit-Messaging. Meine Frage ist: Ich muss einige Abfrage zu externen Systemen (Info Provider, MongoDB etc etc) während der Stream-Verarbeitung durchführen. Diese Abfragen können basierend auf den externen Systemeigenschaften sowohl synchrone als auch asynchrone Anfrageantworten sein.
Ich habe gelesen this post zu erklären, wie man KStream und KTable während der Verarbeitung beitreten und es ist sehr interessant, aber in diesem Szenario KTable ist nicht abhängig von Eingabeparametern von der KStream, es ist nur eine Streaming-Darstellung einer Tabelle.
Ich muss das externe System foreach KStream Nachricht abfragen, übergibt einige Nachrichtenfelder als Abfrageparameter und bereichern die Streaming-Nachricht mit Abfrageergebnis, dann veröffentlichen Sie die angereicherte Nachricht zu einem Ausgabethema. Gibt es ein konsolidiertes Paradigma, um diese Stream-Verarbeitung zu entwerfen? Gibt es eine bestimmte Technologie, die ich besser verwenden soll? Denken Sie daran, dass Abfragen synchron und asynchron sein können.
Ich möchte auch Wrapper für diese externen Systeme entwerfen und eine Art verteilter RPC implementieren, der über eine Kafka Stream-Verarbeitung aufgerufen werden kann. Können Sie irgendeine Technologie/Rahmen vorschlagen? Ich dachte über Akka-Akteure nach, die Query-Responder verteilen, aber ich kann nicht verstehen, ob Akka gut zu dem Request-Response-Paradigma passt.
Dank