Java >> Java Tutorial >  >> Java

Alles über Kafka-Streaming

In letzter Zeit habe ich viel über Kafka-Streaming gehört. Obwohl ich an Microservices gearbeitet habe, habe ich mich nicht wirklich mit datenintensiven Anwendungen befasst. In meiner früheren Erfahrung, als wir mit umfangreichen Daten für Krankenversicherungsleistungen zu tun hatten, war das ganz anders.

Mit Netflix und Amazon ist das Daten-Streaming zu einem wichtigen Ziel geworden. Mit zunehmender Technologie und Informationen ist es noch wichtiger geworden, die wachsenden Datenmengen zu bewältigen. Vereinfacht gesagt sollen alle Webanwendungen in der Lage sein, große Datenmengen mit verbesserter Performance zu verarbeiten. Die Größe der Datensätze sollte die Verwendung von Anwendungen nicht beeinträchtigen.

Was ist Kafka-Datenstreaming?

Zunächst haben wir große Datenmengen stapelweise verarbeitet, aber das ist keine kontinuierliche Verarbeitung und funktioniert manchmal nicht in Echtzeitszenarien für Anwendungen. Wie bei Netflix wird die Stapelverarbeitung niemals funktionieren. Was ist die Alternative? Das Datenstreaming. Datenstreaming ist ein Prozess des kontinuierlichen Sendens von Datensätzen. Dieser Prozess ist das Rückgrat für Anwendungen wie Netflix und Amazon. Auch für die wachsenden Plattformen sozialer Netzwerke ist Datenstreaming das Herzstück des Umgangs mit großen Datenmengen.

Die gestreamten Daten werden oft für Echtzeit-Aggregation und -Korrelation, Filterung oder Stichproben verwendet. Einer der Hauptvorteile des Datenstreamings besteht darin, dass wir Daten in Echtzeit anzeigen und analysieren können.

Wenige Herausforderungen, denen das Datenstreaming häufig gegenübersteht

  1. Skalierbarkeit
  2. Dauerhaftigkeit der Daten
  3. Fehlertoleranz

Tools für Datenstreaming

Es gibt eine Reihe von Tools, die für das Datenstreaming verfügbar sind. Amazon bietet Kinesis an, Apache hat einige Open-Source-Tools wie Kafka, Storm und Flink. In ähnlicher Weise werde ich in zukünftigen Beiträgen mehr über Apache Kafka und seine Verwendung sprechen. Hier gebe ich nur eine kurze Vorstellung von Apache Kafka.

Apache Kafka-Streaming

Apache Kafka ist eine in Echtzeit verteilte Streaming-Plattform. Grundsätzlich erlaubt es uns, Streams von Aufzeichnungen zu veröffentlichen und zu abonnieren.

Es gibt zwei Hauptverwendungen, bei denen Apache Kafka verwendet wird:

  1. Aufbau von Datenpipelines, in denen Datensätze kontinuierlich gestreamt werden.
  2. Entwicklung von Anwendungen, die Datenpipelines nutzen und entsprechend reagieren können

Vor allem die Grundidee, die Kafka übernommen hat, stammt von Hadoop. Es wird als Cluster aus einem oder mehreren Servern ausgeführt, die sich über mehrere Rechenzentren erstrecken können. Diese Cluster speichern Datenströme. Jeder Datensatz im Stream besteht aus Schlüssel, Wert und Zeitstempel. Kafka bietet vier Haupt-APIs Producer, Consumer, Streams, Connector.

In ähnlicher Weise werde ich in zukünftigen Beiträgen diese APIs im Detail mit ihrer Verwendung in einer Beispielanwendung aufschlüsseln.

Referenzen

  1. Apache Kafka – Kafka
  2. Datenstreaming – Datenstreaming
  3. Stream-Verarbeitung – Stream-Verarbeitung


Java-Tag