Apache Kafka ist eine verteilte Open-Source-Plattform für das Event-Streaming, mit der Anwendungen kontinuierliche Datenströme, die in Themen (Topics) organisiert sind, veröffentlichen, speichern und abonnieren können. Produzenten schreiben Datensätze in ein Thema; Konsumenten lesen diese unabhängig voneinander und in ihrem eigenen Tempo, wodurch die Entkopplung der Systeme, die Daten generieren, von den Systemen, die diese verarbeiten, erreicht wird.
Die wichtigsten Erkenntnisse
- Kafka ist eine quelloffene, verteilte Plattform für Event-Streaming und Nachrichtenübermittlung.
- Produzenten veröffentlichen Beiträge zu bestimmten Themen; Konsumenten abonnieren diese und lesen sie in ihrem eigenen Tempo.
- Die Datensätze werden für einen bestimmten Aufbewahrungszeitraum gespeichert, sodass Verbraucher vergangene Ereignisse erneut abspielen können.
- Versa nutzt Kafka als Rückgrat für VMS, den Export von Analyseprotokollen und Director-Ereignisse.
- Kafka-Cluster lassen sich durch Hinzufügen von Brokern und Partitionen skalieren, nicht durch den Austausch von Hardware.
Auf dieser Seite: Warum das wichtig istSo funktioniert esArtenKafka & VersaHäufig gestellte Fragen
Warum ist Kafka wichtig?
Moderne Systeme erzeugen kontinuierliche Datenströme – Klickverläufe, Sensorwerte, Protokolleinträge, Ereignisse zur Benutzeridentität –, und zwar schneller, als eine Datenbank diese in einzelnen Schreibvorgängen verarbeiten kann. Kafka ist wichtig, weil es die Systeme, die diese Daten erzeugen, von den Systemen entkoppelt, die sie verarbeiten: Ein Produzent schreibt einen Datensatz einmal, und eine beliebige Anzahl unabhängiger Konsumenten kann denselben Datenstrom in ihrem eigenen Tempo lesen oder ihn noch lange nach seiner Speicherung erneut abrufen. Dadurch entfällt die Ausbreitung von Punkt-zu-Punkt-Integrationen, die bei herkömmlichen Nachrichtenwarteschlangen entsteht, bei denen jeder neue Konsument eine dedizierte Verbindung zu jedem Produzenten benötigt.
Für Unternehmen, die Echtzeit-Pipelines implementieren – sei es für Sicherheitstelemetrie, IoT-Flotten oder ereignisgesteuerte Microservices –, machen die Garantien von Kafka hinsichtlich Datenbeständigkeit und Reihenfolge das System zu einer Standard-Grundlage für ereignisgesteuerte Architekturen, die durch Hinzufügen von Brokern und Partitionen horizontal skaliert werden können, anstatt Hardware ersetzen zu müssen.
Was ist Kafka?
Kafka organisiert Daten in Themen: benannte Datenströme aus Datensätzen, an die Produzenten neue Datensätze anhängen und aus denen Konsumenten lesen. Jedes Thema ist in Partitionen unterteilt, die über einen Cluster von Servern, den sogenannten Brokern, verteilt sind; durch diese Partitionierung kann Kafka den Durchsatz skalieren und garantiert die Reihenfolge innerhalb einer Partition – jedoch nicht über Partitionen hinweg. Konsumentengruppen abonnieren und lesen unabhängig voneinander, wobei jede ihre eigene Leseposition (einen Offset) verfolgt, sodass mehrere Anwendungen denselben Datenstrom verarbeiten können, ohne sich gegenseitig zu beeinträchtigen.
Broker replizieren jede Partition auf mehrere Knoten, sodass bei einem Ausfall eines einzelnen Brokers keine Daten verloren gehen. Die Aufbewahrung erfolgt zeit- oder größenbasiert und nicht nach dem Prinzip „Delete-on-Read“, sodass ein neuer Konsument den Verlauf nachholen kann, anstatt nur neue Nachrichten zu sehen. Verbindungen können über TLS laufen, und Clients authentifizieren sich in der Regel gegenüber Brokern mithilfe von SASL – Benutzername/Passwort, SCRAM oder OAuth-Token –, anstatt sich allein auf das Vertrauen im Netzwerk zu verlassen.
Arten von Kafka-Bereitstellungen
Kafka-Bereitstellungen lassen sich im Allgemeinen in drei Muster einteilen. Selbstverwaltete Cluster laufen vollständig auf einer Infrastruktur, die der Betreiber kontrolliert – Broker werden vor Ort oder in einer privaten Cloud installiert, wobei der Betreiber für die Kapazitätsplanung, die Installation von Patches und das Failover verantwortlich ist. Verwaltete Cloud-Dienste wie Confluent Cloud oder Amazon MSK lagern den Broker-Betrieb an einen Anbieter aus und stellen dieselben Produzenten- und Konsumenten-APIs bereit, ohne dass dabei ein operativer Aufwand entsteht. Multi-Cluster-Bereitstellungen mit geografischer Replikation verbinden zwei oder mehr Kafka-Cluster – oft an verschiedenen Standorten oder in verschiedenen Regionen – mithilfe eines Replikationstools wie MirrorMaker, das Themen von einem Quellcluster in einen Zielcluster spiegelt, um Disaster Recovery oder Multi-Data-Center-Konzepte zu ermöglichen.
Diese Entscheidung wirkt sich stärker auf den Betriebsaufwand als auf das Anwendungsdesign aus: Produzenten und Konsumenten nutzen unabhängig vom zugrunde liegenden Muster dieselben Client-APIs.
Kafka & Versa
Versa nutzt Kafka als Messaging-Backbone für den „Versa Messaging Service“ (VMS), die Komponente, die Echtzeitdaten – Ereignisse zur Benutzeridentität, Bedrohungs-Feeds, Geräterisikobewertungen und Endpunktinformationen – zwischen den Headend-Komponenten von „ Versa “ und den Gateways von „ SASE “ verteilt. SASE für SIM kann Teilnehmerereignisse über Kafka als Alternative zu RADIUS veröffentlichen, und die Microservices SCIM, UEBA und XIP-EIP konfigurieren jeweils ein Kafka-Broker-Thema, eine Adresse, einen Port sowie eine SASL- oder zertifikatsbasierte Authentifizierung.
VMS-Cluster können es Kafka MirrorMaker zudem ermöglichen, Daten zwischen VMS-Knoten zu replizieren, um Redundanz zu gewährleisten – ein Schritt, den „ Versa “ vor der Integration von EDR-Plattformen wie CrowdStrike, Microsoft Defender und SentinelOne erfordert. „ Versa Analytics“ kann Protokolle als Remote-Protokollsammler an einen externen Kafka-Cluster streamen, wobei Themen und die TLS/SASL-Authentifizierung auf dem Exporter des Protokollsammlers konfiguriert werden. Unabhängig davon veröffentlicht „ Versa Director“ Benachrichtigungen über Objektänderungen und Ereignisse über Kafka für nachgelagerte Systeme.
Häufig gestellte Fragen
Was ist ein Kafka-Topic?
Ein Thema ist ein benannter, nur für das Hinzufügen von Datensätzen zugänglicher Datenstrom, in den Produzenten schreiben und aus dem Konsumenten lesen. Kafka unterteilt jedes Thema in Partitionen, um Speicherplatz sowie Lese- und Schreiblast auf mehrere Broker zu verteilen und gleichzeitig die Reihenfolge innerhalb einer einzelnen Partition zu wahren.
Was ist der Unterschied zwischen Kafka und einer herkömmlichen Nachrichtenwarteschlange?
In einer herkömmlichen Warteschlange wird eine Nachricht in der Regel gelöscht, sobald ein Konsument sie gelesen hat. Kafka speichert Datensätze für einen konfigurierbaren Zeitraum, unabhängig davon, ob sie gelesen wurden oder nicht, sodass unabhängige Konsumentengruppen denselben Stream lesen – und erneut abspielen – können, ohne sich gegenseitig zu beeinflussen.
Benötigt Kafka ZooKeeper?
Ältere Kafka-Versionen waren für die Cluster-Metadaten und die Wahl des Leaders auf ein separates Apache-ZooKeeper-Ensemble angewiesen. Seitdem der KRaft-Modus von Kafka produktionsreif ist, übernehmen die Broker diese Koordination intern, wodurch die Abhängigkeit von ZooKeeper entfällt.
Wie gewährleistet Kafka die Reihenfolge der Nachrichten?
Kafka garantiert die Reihenfolge nur innerhalb einer einzelnen Partition: Datensätze, die in dieselbe Partition geschrieben werden, werden in der Reihenfolge zurückgelesen, in der sie erzeugt wurden. Über Partitionen hinweg gibt es keine Reihenfolgegarantie, sodass für eine strenge globale Reihenfolge sichbezogene Datensätze demselben Partitionsschlüssel zugeordnet werden müssen.
Wie sichert „ Versa “ die Kafka-Verbindungen zu VMS?
Versa sichert Kafka-Verbindungen zu VMS mit TLS-verschlüsseltem Transport und zertifikatsbasierter oder SASL-Authentifizierung – die VMS-Broker-Konfigurationen unterstützen neben SCRAM- und OAuth-Bearer-SASL-Mechanismen auch CA, Client-Zertifikate und das Hochladen privater Schlüssel – dieselben Kontrollmechanismen, die auch bei Analytics-Protokoll-Exporten zum Einsatz kommen.
Mehr über Kafka
Wenn Sie mehr erfahren möchten, finden Sie hier Quellen, denen wir vertrauen.
| Apache Kafka: Dokumentation |
|---|
| Die offizielle Dokumentation zum Apache Kafka-Projekt: Architektur, Themen, Produzenten und Konsumenten sowie Betrieb. |
Verwandte Begriffe
Wenn Sie sich gerade mit Kafka beschäftigen, sollten Sie sich als Nächstes diese Werke einmal ansehen.
| Versa Nachrichtendienst | Privacy-Enhanced Mail | Alternativer Name des Themas |
|---|---|---|
| Der auf Kubernetes basierende Headend-Dienst, der Kafka als Backbone für das Message-Streaming nutzt, um Identitäts-, Bedrohungs- und Risikobewertungsdaten an die Komponenten von „ Versa “ zu verteilen. | Das Zertifikats- und Schlüsselkodierungsformat, das Kafkas TLS-gesicherte Remote-Collectors für CA-, Client- und Privatschlüsseldateien erfordern. | Die Zertifikatserweiterung, die bei der TLS-Validierung überprüft wird, wenn Kafka-Clients Broker über eine verschlüsselte Verbindung authentifizieren. |