Definition

Was ist Apache Kafka?

| Autor / Redakteur: Stefan Luber / Nico Litzel

(Bild: © aga7ta - stock.adobe.com)

Apache Kafka ist eine Open Source Software, die die Speicherung und Verarbeitung von Datenströmen über eine verteilte Streaming-Plattform ermöglicht. Sie stellt verschiedene Schnittstellen bereit, um Daten in Kafka-Cluster zu schreiben, Daten zu lesen oder in und aus Drittsysteme zu importieren und zu exportieren.

Apache Kafka wurde ursprünglich als Nachrichten-Queue von LinkedIn entwickelt. Die Open Source Software hat sich als Projekt der Apache Software Foundation zu einer leistungsfähigen Streaming-Plattform mit großem Funktionsumfang weiterentwickelt.

Mithilfe von Apache Kafka lassen sich Datenströme speichern und verarbeiten. Das System basiert auf einer verteilten Architektur, die für eine hohe Fehlertoleranz und Skalierbarkeit optimiert ist. Dadurch eignet sich Apache Kafka für große Datenmengen und Anwendungen im Big-Data-Umfeld.

Über bereitgestellte Schnittstellen ist es möglich, Datenströme von Drittsystemen zu laden oder zu diesen Systemen zu exportieren. Die Kernkomponente des Systems bildet ein verteiltes Commit- beziehungsweise Transaktions-Log. Vorteile von Apache Kafka sind geringe Latenzen, hoher Durchsatz und die Möglichkeit, Echtzeit-Streams zu verarbeiten.

Grundfunktionen von Apache Kafka

Apache Kafka löst die Probleme, die entstehen, wenn Datenquellen und Datenempfänger direkt verbunden werden. Beispielsweise ist es bei der Direktverbindung der Systeme nicht möglich, Daten zwischenzuspeichern, wenn der Empfänger nicht verfügbar ist. Zudem kann ein Sender den Empfänger überlasten, wenn er schneller Daten sendet, als der Empfänger diese entgegennimmt und verarbeitet.

Apache Kafka agiert als Messaging-System zwischen dem Sender und dem Empfänger. Im Gegensatz zu einer reinen Nachrichten-Queue arbeitet Apache Kafka fehlertolerant und ist extrem skalierbar. Das System ist durch sein verteiltes Transaktions-Log in der Lage, Daten zu speichern und mit hoher Verfügbarkeit bereitzustellen. Direkt beim Eintreffen der Daten lassen sich diese in hoher Geschwindigkeit verarbeiten. Daten sind in Echtzeit aggregierbar.

Die Architektur von Apache Kafka

Die Architektur von Apache Kafka besteht aus einem Cluster-Rechnerverbund. In diesem Rechnerverbund speichern sogenannte Broker Nachrichten mit einem Zeitstempel. Diese Informationen nennen sich Topics. Die gespeicherten Informationen werden im Cluster repliziert und verteilt. Als Producer werden Anwendungen bezeichnet, die Nachrichten oder Daten in einen Kafka-Cluster schreiben. Consumer sind Anwendungen, die Daten des Kafka-Clusters lesen. Zusätzlich steht eine Java-Bibliothek mit der Bezeichnung Kafka-Streams zur Verfügung, die Daten aus dem Cluster liest, sie verarbeitet und die Ergebnisse in den Cluster zurückschreibt.

Kafka unterscheidet zwischen „Normal Topics“ und „Compacted Topics“. Normal Topics werden für einen gewissen Zeitraum gespeichert und dürfen eine definierte Speichergröße nicht überschreiten. Sind Zeitraum oder Speicherlimit überschritten, darf Apache Kafka alte Nachrichten löschen. Compacted Topics unterliegen weder einer Zeitbeschränkung noch einer Speicherplatzlimitierung.

Die Schnittstellen von Apache Kafka

Insgesamt bietet Apache Kafka diese vier Hauptschnittstellen (APIs – Application Programming Interfaces):

  • Producer API
  • Consumer API
  • Streams API
  • Connect API

Die Producer API erlaubt Anwendungen das Schreiben von Daten oder Nachrichten in einen Kafka-Cluster. Über die Consumer API lassen sich die Daten eines Kafka-Clusters auslesen. Producer und Consumer API verwenden das Kafka-Nachrichtenprotokoll. Es handelt sich um ein binäres Protokoll. Prinzipiell ist die Entwicklung von Producer- und Consumer-Clients in beliebigen Programmiersprachen möglich.

Bei der Streams API handelt es sich um eine Java-Bibliothek. Sie ist in der Lage, Datenströme zustandsbehaftet und fehlertolerant zu verarbeiten. Über bereitgestellte Operatoren ist das Filtern, Gruppieren und Zuordnen von Daten möglich. Zusätzlich lassen sich eigene Operatoren in die API integrieren. Die Streams API unterstützt Tabellen, Joins und Zeitfenster. Die zuverlässige Speicherung der Anwendungszustände ist durch die Protokollierung aller Zustandsänderungen in Kafka Topics sichergestellt. Tritt ein Ausfall auf, lässt sich der Anwendungszustand durch das Auslesen der Zustandsänderungen aus dem Topic wiederherstellen.

Die Kafka Connect API stellt die Schnittstellen zum Laden und Exportieren von Daten aus beziehungsweise in Drittsysteme zur Verfügung. Sie basiert auf den Producer und Consumer APIs. Die Kommunikation mit den Drittsystemen übernehmen spezielle Konnektoren. Um Drittsysteme verschiedener Hersteller mit Apache Kafka zu verbinden, existieren zahlreiche kommerzielle oder freie Konnektoren.

Anwendungsbereiche von Apache Kafka

Apache Kafka bietet vielfältige Einsatzmöglichkeiten. Typische Anwendungsbereiche sind:

  • Tracking von Aktivitäten auf Webseiten in Echtzeit
  • Überwachung von verteilten Anwendungen
  • Aggregation von Log-Dateien verschiedener Quellen
  • Synchronisierung von Daten in verteilten Systemen

Ein weiteres wichtiges Anwendungsgebiet für Apache Kafka ist das maschinelle Lernen. Apache Kafka unterstützt beim Machine Learning unter anderem:

  • Das Trainieren von Modellen in Echtzeit,
  • das Ableiten analytischer Modelle in Echtzeit sowie
  • das Überwachen und Analysieren.

Beispiele für Anwendungen des Machine Learnings sind die Betrugserkennung durch Verknüpfung von Echtzeit-Zahlungsinformationen mit historischen Daten und Mustern, das Cross Selling durch maßgeschneiderte, kundenspezifische Angebote auf Basis aktueller, historischer oder standortbezogener Daten oder die vorausschauende Wartung durch die Analyse von Maschinendaten.

Kommentare werden geladen....

Kommentar zu diesem Artikel abgeben

Der Kommentar wird durch einen Redakteur geprüft und in Kürze freigeschaltet.

Anonym mitdiskutieren oder einloggen Anmelden

Avatar
Zur Wahrung unserer Interessen speichern wir zusätzlich zu den o.g. Informationen die IP-Adresse. Dies dient ausschließlich dem Zweck, dass Sie als Urheber des Kommentars identifiziert werden können. Rechtliche Grundlage ist die Wahrung berechtigter Interessen gem. Art 6 Abs 1 lit. f) DSGVO.
  1. Avatar
    Avatar
    Bearbeitet von am
    Bearbeitet von am
    1. Avatar
      Avatar
      Bearbeitet von am
      Bearbeitet von am

Kommentare werden geladen....

Kommentar melden

Melden Sie diesen Kommentar, wenn dieser nicht den Richtlinien entspricht.

Kommentar Freigeben

Der untenstehende Text wird an den Kommentator gesendet, falls dieser eine Email-hinterlegt hat.

Freigabe entfernen

Der untenstehende Text wird an den Kommentator gesendet, falls dieser eine Email-hinterlegt hat.

Aktuelle Beiträge zu diesem Thema

Neue Datenbanken braucht das Land

Kommentar von Bruno Šimić, Couchbase

Neue Datenbanken braucht das Land

Die Geschäftswelt ändert sich schneller als je zuvor. Treiber dafür sind die immer größer werdenden Datenbanken der Firmen. Kunden konsumieren immer mehr Daten, weil sie mit immer mehr mobillen und IoT-Geräten Informationen nutzen. Um diese Herausforderungen zu bewältigen, werden verteilte Cloud- und Big-Data-Technologien benötigt. lesen

Confluent Operator veröffentlicht

Cloud-native Kafka-Plattform

Confluent Operator veröffentlicht

Im Rahmen des Confluent Platform Releases 5.3 GA ist der Confluent Operator nun für Produktivumgebungen verfügbar. Dabei handelt es sich um einen Apache-Kafka-Operator für Kubernetes, der automatisierte Cluster-Bereitstellung ermöglicht. lesen

7 Lektionen für IoT-Softwareentwicklung

Unterschiede zu klassischem Development

7 Lektionen für IoT-Softwareentwicklung

Das Internet der Dinge, kurz IoT, wächst und gedeiht. Aus diesem Trend hin zu immer mehr vernetzten Produkten ergeben sich einige Änderungen für die Softwareentwicklung. Dieser Beitrag beleuchtet die wichtigsten Unterschiede und sieben Lehren, die sich daraus ziehen lassen. lesen

Information Builders aktualisiert WebFocus-Plattform

Containerisierung, KI und mehr

Information Builders aktualisiert WebFocus-Plattform

Mit neuen Containerisierungs-, IoT- und KI-Funktionen baut Information Builders seine Datenmanagement- und Analytics-Plattform WebFocus weiter aus. lesen

Wie die Cloud hilft, den Bierabsatz zu optimieren

Data Lake in Azure-Cloud beschleunigt Entscheidungsfindung bei AB InBev

Wie die Cloud hilft, den Bierabsatz zu optimieren

Bei der Brauereigruppe AB InBev verbrachten einzelne Mitarbeiter früher bis zu 80 Prozent ihrer Zeit damit, relevante Daten zu identifizieren und aufzubereiten. Über eine zentrale Cloud-Lösung werden heute Daten schneller bereitgestellt, sodass Mitarbeiter mehr Zeit für die Analyse und die strategische Entscheidungsfindung haben. lesen

iTac stellt IIoT-Konzept vor

Mehrwert aus Produktionsdaten

iTac stellt IIoT-Konzept vor

Mit iTac.Manufacturing.Analytics hat der MES-Spezialist („Manufacturing Execution System“) iTac Software sein neues Konzept für das industrielle Internet der Dinge (IIoT) vorgestellt. lesen

Webtrekk Data Streams exportiert Rohdaten in Echtzeit

Daten erfassen, aufbereiten und streamen

Webtrekk Data Streams exportiert Rohdaten in Echtzeit

Der Analytics-Spezialist Webtrekk hat die Technologie Data Streams in seine Plattform integriert. Sie ermöglicht das Erfassen, Aufbereiten und Streamen von Daten in Echtzeit und soll damit agile Business Intelligence ermöglichen. lesen

Streaming von Rohdaten ist ein Erfolgsfaktor

Kommentar von Michael Diestelberg, Webtrekk

Streaming von Rohdaten ist ein Erfolgsfaktor

Durch die fortschreitende digitale Transformation nehmen die Verfügbarkeit und das Sammeln von Daten – über interne Prozesse oder die eigenen Kunden – immer weiter zu. Laut Schätzungen von IDC Research wird das jährlich kumulierte Datenvolumen im Jahr 2025 weltweit bereits 180 Zettabyte umfassen. Das entspricht einer Milliarde Terabytes, ein kaum vorstellbares Ausmaß. Für Unternehmen stellt das eine wachsende Ressource und ein enormes Wissenspotenzial dar. lesen

Neo4j vereinfacht Zugang zu Start-up-Programm

Enterprise Edition kostenlos

Neo4j vereinfacht Zugang zu Start-up-Programm

Ab sofort erhalten Start-ups mit bis zu 50 Mitarbeitern und drei Millionen Euro Jahresumsatz die Graphdatenbank Neo4j in der Enterprise Edition im Rahmen des Neo4j-Start-up-Programms kostenlos. lesen

copyright

Dieser Beitrag ist urheberrechtlich geschützt. Sie wollen ihn für Ihre Zwecke verwenden? Infos finden Sie unter www.mycontentfactory.de (ID: 45531650 / Definitionen)