Ich plane eine Anwendung, die von Apache Kafka liest und nach (möglicherweise zeitaufwändiger) Verarbeitung Daten in einer Datenbank speichert.Skalierung mit Apache Spark/Apache Flink
Mein Fall sind Nachrichten, nicht Streams, aber für die Skalierbarkeit denke ich über das Einstecken in Spark oder Flink, kann aber nicht verstehen, wie diese Skala: sollte meine App, wenn ein Teil von Spark/Flink, etwas lesen Daten von Kafka und dann verlassen oder weiterlesen?
Wie entscheidet Spark/Flink dann, dass sie mehr Instanzen meiner App generieren müssen, um den Durchsatz zu verbessern?
Danke!
Spark hat Dynamic Allocation, es wird neue Executors erstellen, wenn - soweit ich mich erinnere - Microbatch-Dauer kommt näher an Microbatch-Intervall –
Ich bin neu in beiden - wie meine App sollte sich verhalten? soll es nur einmal von Kafka gelesen und verlassen werden? Wie würde Spark/Flink wissen, dass neue Jobs zum Lesen erstellt werden müssen, wenn sich mehr Daten in der Warteschlange befinden? – estoy
Einfach einen Streaming Job erstellen, Spark skaliert die Anzahl der Executoren automatisch –