2017-04-04 4 views
0

Ich bin gerade dabei, die Domäne der Stream-Verarbeitung mit flink zu entdecken. Die meisten Fachartikel, die ich bisher gelesen habe, sprechen jedoch von Flink UND Kafka. Ich habe jedoch keine klare Erklärung gefunden, warum dieses Duo so logisch zu sein scheint und erklärt, was Kafka nicht tun kann und umgekehrt.Warum kafka mit flink verwenden

Bisher fand ich folgendes: - flink kann nicht PROCESS_CONTINUOUSLY mit readCsvFile und kafka in diesem Aspekt unterstützen könnte, - kafka kann Strom Aggregation tun, aber es scheint begrenzt (nicht sicher) im Vergleich zu kafka.

Also, zögern Sie bitte nicht, Ihr Wissen UND Erfahrung, die Sie bisher mit diesen Systemen hatten, hinzuzufügen. Vielen Dank im Voraus.

Antwort

1

Es ist wahr, dass auf den ersten Blick der Unterschied nicht offensichtlich ist.

Apache Kafka ist eine Lösung, um mit Echtzeitinformationen umzugehen und sie schnell zu den Verbrauchern zu leiten, dh es handelt sich um einen Nachrichtenbroker .

Apache Flink ist ein Stream Processing Framework. Es handelt sich um Daten-In-Memory-Distributed Computing.

Das gesagt, im Grunde wird Kafka die Rolle des Nachrichtenrouters haben, und Apache Flink wird die Daten verarbeiten.

Wie Sie in dem folgenden Beispielschema sehen können, würde Kafka erlauben, Nachrichten aus heterogenen Quellen zu veröffentlichen, und Apache Flink wird diese Daten verarbeiten, indem es Fensterfunktionen anwendet oder reduziert.

enter image description here

Wenn Sie die Kafka-Dokumentation schauen, führten sie ein neues Feature auf der Kafka genannt Kafka-Stream (die nicht Teil der ursprünglichen Kafka ist). Dies ist auch ein Stream-Processing-Framework, das Daten wie Apache Flink verarbeiten kann.