Die Eigenschaften von Kafka sind: 1. Bietet einen hohen Durchsatz sowohl für die Veröffentlichung als auch für das Abonnement. 2. Kann Persistenzvorgänge ausführen und Nachrichten auf der Festplatte speichern, sodass es für den Stapelverbrauch verwendet werden kann 4. Unterstützt Online- und Offline-Szenarien.
Kafkas Funktionen und Nutzungsszenarien
Kafka ist ein verteiltes Publish-Subscribe-Nachrichtensystem. Es wurde ursprünglich von der LinkedIn Corporation entwickelt und wurde später Teil des Apache-Projekts. Kafka ist ein verteilter, partitionierbarer, redundanter und persistenter Protokolldienst.
Es wird hauptsächlich zur Verarbeitung aktiver Streaming-Daten verwendet. In Big-Data-Systemen stoßen wir häufig auf ein Problem: Die gesamten Big Data bestehen aus verschiedenen Subsystemen. Daten müssen in jedem Subsystem kontinuierlich mit hoher Leistung und geringer Latenz zirkulieren.
Herkömmliche Enterprise-Messaging-Systeme sind für die Datenverarbeitung in großem Maßstab nicht sehr geeignet. Um gleichzeitig Online-Anwendungen (Nachrichten) und Offline-Anwendungen (Datendateien, Protokolle) verarbeiten zu können, erschien Kafka. Kafka kann zwei Rollen spielen:
Reduzieren Sie die Komplexität der Systemvernetzung.
Reduziert die Programmierkomplexität. Jedes Subsystem wird nicht mehr wie ein Socket an einen Socket angeschlossen.
Hauptfunktionen von Kafka:
Bietet hohen Durchsatz sowohl für Veröffentlichungen als auch für Abonnements. Es wird davon ausgegangen, dass Kafka etwa 250.000 Nachrichten (50 MB) pro Sekunde produzieren und 550.000 Nachrichten (110 MB) pro Sekunde verarbeiten kann.
kann Persistenzoperationen durchführen. Behalten Sie Nachrichten auf der Festplatte bei, damit sie für die Stapelverarbeitung, z. B. ETL, sowie für Echtzeitanwendungen verwendet werden können. Verhindern Sie Datenverlust, indem Sie Daten auf der Festplatte speichern und replizieren.
Verteiltes System, leicht nach außen erweiterbar. Alle Produzenten, Makler und Verbraucher werden mehrere haben, und sie sind alle verteilt. Maschinen können ohne Ausfallzeiten erweitert werden.
Der Status der Nachrichtenverarbeitung wird auf der Verbraucherseite und nicht auf der Serverseite verwaltet. Gleicht automatisch aus, wenn ein Fehler auftritt.
Unterstützt Online- und Offline-Szenarien.
Die Designpunkte von Kafka:
1. Verwenden Sie direkt den Cache des Linux-Dateisystems, um Daten effizient zwischenzuspeichern.
2. Verwenden Sie Linux Zero-Copy, um die Sendeleistung zu verbessern. Beim herkömmlichen Senden von Daten sind vier Kontextwechsel erforderlich. Nach Verwendung des Systemaufrufs sendfile werden die Daten direkt im Kernelstatus ausgetauscht und der Systemkontextwechsel wird auf zwei reduziert. Den Testergebnissen zufolge kann die Datensendeleistung um 60 % verbessert werden.
3. Die Kosten für den Datenzugriff auf die Festplatte betragen O(1). Kafka verwendet Themen für die Nachrichtenverwaltung. Jedes Thema enthält mehrere Teile (itionen). Jeder Teil entspricht einem logischen Protokoll und besteht aus mehreren Segmenten. In jedem Segment werden mehrere Nachrichten gespeichert (siehe Abbildung unten). Die Nachrichten-ID wird durch ihren logischen Speicherort bestimmt, d. h. die Nachrichten-ID kann direkt dem Speicherort der Nachricht zugeordnet werden, wodurch eine zusätzliche Zuordnung der ID zum Speicherort vermieden wird. Jeder Teil entspricht einem Index im Speicher, und der Offset der ersten Nachricht in jedem Segment wird aufgezeichnet. Die vom Herausgeber an ein Thema gesendete Nachricht wird gleichmäßig auf mehrere Teile verteilt (zufällig oder gemäß der vom Benutzer angegebenen Rückruffunktion verteilt). Der Broker empfängt die veröffentlichte Nachricht und fügt die Nachricht dem letzten Segment des entsprechenden Teils hinzu. Wenn die Anzahl der Nachrichten in einem Segment den konfigurierten Wert erreicht oder die Nachrichtenveröffentlichungszeit den Schwellenwert überschreitet, werden die Nachrichten auf dem Segment auf die Festplatte geleert. Nur Abonnenten der auf die Festplatte geleerten Nachrichten können abonnieren Ab einer bestimmten Größe werden die Daten nicht mehr in das Segment geschrieben und der Broker erstellt ein neues Segment.
4. Explizite Verteilung, das heißt, alle Produzenten, Makler und Verbraucher werden mehrfach verteilt. Es gibt keinen Lastausgleichsmechanismus zwischen Produzent und Broker. Zookeeper wird für den Lastausgleich zwischen Brokern und Verbrauchern verwendet.
Alle Makler und Verbraucher werden in zookeeper registriert und zookeeper speichert einige ihrer Metadateninformationen. Bei einem Wechsel eines Maklers oder Verbrauchers werden alle anderen Makler und Verbraucher benachrichtigt.
Das obige ist der detaillierte Inhalt vonWas sind die Merkmale von Kafka?. Für weitere Informationen folgen Sie bitte anderen verwandten Artikeln auf der PHP chinesischen Website!