Apache Kafka: Distributed Messaging System der nächsten Generation



Apache Kafka bietet hochdurchsatzfähige und skalierbare Messagingsysteme, die es in der Echtzeitanalyse beliebt machen. Erfahren Sie, wie Ihnen ein Apache Kafka-Tutorial helfen kann

In der heutigen Welt, Daten sind der Hauptbestandteil von Internetanwendungen und umfasst in der Regel die folgenden:





  • Seitenbesuche und Klicks
  • Benutzeraktivitäten
  • Ereignisse, die Anmeldungen entsprechen
  • Social-Networking-Aktivitäten wie Likes, Shares und Kommentare
  • Anwendungsspezifische Metriken (z. B. Protokolle, Ladezeit der Seite, Leistung usw.)

Dies Daten können verwendet werden, um Analysen in Echtzeit auszuführen für verschiedene Zwecke, von denen einige sind:

  • Werbung liefern
  • Verfolgung abnormaler Benutzerverhalten
  • Anzeigen der Suche nach Relevanz
  • Anzeigen von Empfehlungen basierend auf früheren Aktivitäten

Problem: Das Sammeln aller Daten ist nicht einfach, da Daten aus verschiedenen Quellen in verschiedenen Formaten generiert werden



Lösung: Eine Möglichkeit, dieses Problem zu lösen, besteht in der Verwendung eines Nachrichtensystems. Messaging-Systeme bieten mithilfe von Nachrichten eine nahtlose Integration zwischen verteilten Anwendungen.

apache-kafka-next-generation-distributed-messaging-system

Apache Kafka:



Apache Kafka ist ein verteiltes Publish-Subscribe-Messaging-System, das ursprünglich bei LinkedIn entwickelt wurde und später Teil des Apache-Projekts wurde. Kafka ist schnell, agil, skalierbar und vom Design her verteilt.

Kafka Architektur und Terminologie:

Thema: Ein Nachrichtenstrom, der zu einer bestimmten Kategorie gehört, wird als Thema bezeichnet

Hersteller : Ein Produzent kann eine beliebige Anwendung sein, die Nachrichten zu einem Thema veröffentlichen kann

Verbraucher: Ein Verbraucher kann jede Anwendung sein, die Themen abonniert und die Nachrichten verwendet

Makler: Der Kafka-Cluster besteht aus einer Reihe von Servern, von denen jeder als Broker bezeichnet wird

Java 9-Funktionen mit Beispielen

Kafka ist skalierbar und ermöglicht die Erstellung mehrerer Arten von Clustern.

  • Single Node Single Broker Cluster
  • Single Node Multiple Broker Cluster
  • Mehrere Knoten Mehrere Broker-Cluster

Single Node Single Broker

Welche Rolle spielt ZooKeeper?

Jeder Kafka-Broker koordiniert mit anderen Kafka-Brokern über ZooKeeper. Hersteller und Verbraucher werden vom ZooKeeper-Service über das Vorhandensein neuer Broker oder das Versagen des Brokers im Kafka-System informiert.

Einzelknoten Mehrere Broker

Mehrere Knoten Mehrere Broker

Kafka @ LinkedIn

LinkedIn Newsfeed wird von Kafka betrieben

Die Empfehlungen von LinkedIn werden von Kafka unterstützt

LinkedIn-Benachrichtigungen werden von Kafka bereitgestellt

Hinweis: Abgesehen davon verwendet LinkedIn Kafka für viele andere Aufgaben wie Protokollüberwachung, Leistungsmetriken und Suchverbesserungen.

Wer benutzt noch Kafka?

DataSift: DataSift verwendet Kafka als Sammler von Überwachungsereignissen und um den Verbrauch von Datenströmen durch Benutzer in Echtzeit zu verfolgen

Wooga: Wooga verwendet Kafka, um Tracking-Daten aller Facebook-Spiele (die bei verschiedenen Anbietern gehostet werden) an einem zentralen Ort zu sammeln und zu verarbeiten

Schwammzelle: Spongecell verwendet Kafka, um seine gesamte Analyse- und Überwachungspipeline für Echtzeit- und ETL-Anwendungen auszuführen

Loggly: Loggly ist das weltweit beliebteste Cloud-basierte Protokollmanagement. Es verwendet Kafka für die Protokollsammlung.

Vergleichsstudie: Kafka vs. ActiveMQ vs. RabbitMQ

Kafka hat ein effizienteres Speicherformat. Im Durchschnitt hat jede Nachricht einen Overhead von 9 Byte in Kafka gegenüber 144 Byte in ActiveMQ

Sowohl in ActiveMQ als auch in RabbitMQ behalten Broker den Zustellstatus jeder Nachricht bei, indem sie auf die Festplatte schreiben. Im Fall von Kafka erfolgt jedoch kein Festplattenschreiben, wodurch die Nachricht schneller wird.

Mit der breiten Akzeptanz von Kafka in der Produktion scheint es eine vielversprechende Lösung für die Lösung realer Probleme zu sein. Mit dem Apache Kafka-Training können Sie Ihren Kollegen in einer Karriere als Echtzeit-Analytiker einen Schritt voraus sein. Beginnen Sie mit einem Apache Kafka-Tutorial Hier .

Hast du eine Frage an uns? Bitte erwähnen Sie es in den Kommentaren und wir werden uns bei Ihnen melden.

Zusammenhängende Posts:

Was Sie für eine Karriere in Real-Time Analytics benötigen