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:
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: