Update 09. April 2018 : Heutzutage können Sie auch ksqlDB , die Ereignis-Streaming-Datenbank für Kafka, verwenden, um Ihre Daten in Kafka zu verarbeiten. ksqlDB basiert auf der Streams-API von Kafka und bietet erstklassige Unterstützung für "Streams" und "Tabellen".
Was ist der Unterschied zwischen Consumer API und Streams API?
Die Streams-API von Kafka ( https://kafka.apache.org/documentation/streams/ ) basiert auf den Produzenten- und Konsumentenkunden von Kafka. Es ist deutlich leistungsfähiger und ausdrucksstärker als der Kafka-Kunden. Hier sind einige der Funktionen der Kafka Streams-API:
- Unterstützt genau einmalige Verarbeitungssemantik (Kafka-Versionen 0.11+)
- Unterstützt fehlertolerante zustandsbehaftete (und natürlich zustandslose) Verarbeitung, einschließlich Streaming- Joins , Aggregationen und Fensterung . Mit anderen Worten, es unterstützt die sofort einsatzbereite Verwaltung des Verarbeitungsstatus Ihrer Anwendung.
- Unterstützt die Verarbeitung zur Ereigniszeit sowie die Verarbeitung basierend auf der Verarbeitungszeit und der Aufnahmezeit
- Erstklassige Unterstützung für Streams und Tabellen . Hier trifft die Stream-Verarbeitung auf Datenbanken. In der Praxis benötigen die meisten Stream-Verarbeitungsanwendungen sowohl Streams als auch Tabellen, um ihre jeweiligen Anwendungsfälle zu implementieren. Wenn einer Stream-Verarbeitungstechnologie eine der beiden Abstraktionen fehlt (z. B. keine Unterstützung für Tabellen), stecken Sie entweder fest oder müssen diese Funktionalität manuell selbst implementieren (viel Glück damit...)
- Unterstützt interaktive Abfragen (auch als "abfragbarer Status" bezeichnet), um die neuesten Verarbeitungsergebnisse anderen Anwendungen und Diensten zugänglich zu machen
- Ist ausdruck: es wird mit (1) einem funktionalen Programmierung Stil DSL mit Operationen wie
map
, filter
, reduce
sowie (2) ein zwingender Stil Prozessor API für zB komplexe Ereignisverarbeitung (CEP) zu tun, und (3) Sie können sogar kombinieren das DSL und die Prozessor-API.
Unter http://docs.confluent.io/current/streams/introduction.html finden Sie eine detailliertere, aber dennoch allgemeine Einführung in die Kafka Streams-API, die Ihnen auch helfen soll, die Unterschiede zum untergeordneten Kafka-Verbraucher zu verstehen Klient. Es gibt auch ein Docker-basiertes Tutorial für die Kafka Streams-API , über das ich Anfang dieser Woche gebloggt habe .
Wie unterscheidet sich die Kafka Streams-API, da diese auch Nachrichten von Kafka verbraucht oder an Kafka sendet?
Ja, die Kafka Streams-API kann sowohl Daten lesen als auch Daten in Kafka schreiben.
und warum ist dies erforderlich, da wir unsere eigene Verbraucheranwendung mithilfe der Verbraucher-API schreiben und nach Bedarf verarbeiten oder von der Verbraucheranwendung an Spark senden können?
Ja, Sie könnten Ihre eigene Consumer-Anwendung schreiben - wie bereits erwähnt, verwendet die Kafka Streams-API den Kafka-Consumer-Client (plus den Producer-Client) selbst -, aber Sie müssten alle einzigartigen Funktionen der Streams-API manuell implementieren . In der obigen Liste finden Sie alles, was Sie "kostenlos" erhalten. Es ist daher eher ein seltener Umstand, dass ein Benutzer den Low-Level-Consumer-Client anstelle der leistungsstärkeren Kafka Streams-API auswählt.
Kafka Stream-Komponente zur Unterstützung der ETL-Nachrichtentransformation. Mittel zum Eingeben von Streams aus dem Thema, Transformieren und Ausgeben in andere Themen. Es unterstützt die Echtzeitverarbeitung und gleichzeitig erweiterte Analysefunktionen wie Aggregation, Fensterung, Verknüpfung usw.
"Kafka Streams vereinfacht die Anwendungsentwicklung, indem es auf den Produzenten- und Konsumentenbibliotheken von Kafka aufbaut und die nativen Funktionen von Kafka nutzt, um Datenparallelität, verteilte Koordination, Fehlertoleranz und einfache Bedienung zu bieten."
Im Folgenden finden Sie wichtige architektonische Merkmale von Kafka Stream. Bitte beziehen Sie sich hier
Basierend auf meinem Verständnis unten sind wichtige Unterschiede, die ich aktualisieren kann, wenn ein Punkt fehlt oder irreführend ist
Verwendungszweck Verbraucher - Hersteller:
Wo kann man Kafka Stream verwenden?
quelle