Apache Kafka VS Amazon Kinesis

Einführung

Die Verarbeitung von Streaming-Daten nimmt erheblich zu. Infolgedessen wurden verschiedene Plattformen und Frameworks eingeführt, um die Komplexität der Anforderungen zu verringern, z. B. die dauerhafte und skalierbare Erfassung von Daten mit hohem Durchsatz. Die Echtzeitverarbeitung kann auch andere gängige Anwendungsfälle wie Website-Analysen und maschinelles Lernen genauer und umsetzbarer machen, indem Daten in Sekunden oder Minuten anstelle von Stunden oder Tagen für diese Anwendungen verfügbar gemacht werden. Während die traditionellen Pub-Sub-Messaging-Frameworks wie RabbitMQ und ActiveMQ diese Herausforderungen meistern, hat Apache Kafka seit seiner Einführung die Landschaft verändert. Apache Kafka, ein Open-Source-Pub / Sub-Framework, das bei LinkedIn entwickelt wurde, ist aufgrund seines ausgereiften, skalierbaren und langlebigen Designs eine beliebte Wahl für eine Vielzahl von Anwendungsfällen wie Stream-Verarbeitung und Datentransformation. Eines der Mankos von Apache Kafka ist jedoch das Fehlen eines Cloud-nativen Designs für Hochverfügbarkeit und Überwachung. Als Ergebnis haben wir festgestellt, dass das Ausführen und Betreiben von Apache Kafka in einer Cloud-Umgebung viel Zeit und Mühe erfordert, die vom Betrieb und den Entwicklungsteams aufgewendet werden. Eine Alternative zu Apache Kafka mit ähnlichen Funktionen ist Amazon Kinesis. Amazon Kinesis ist ein Datenerfassungsdienst, der von Amazon Web Services (AWS) gehostet und verwaltet wird.

Verstehen wir Apache Kafka vs Amazon Kinesis mit einem kleinen Hintergrund über Publish / Subscribe Model im Allgemeinen.

Grundlegende allgemeine Konzepte zu Pub / Sub

1. Publish / Subscribe (Pub / Sub) Messaging

Pub / Sub Messaging bietet die skalierbare, flexible und zuverlässige Möglichkeit, Ereignisbenachrichtigungen für verteilte Anwendungen zu senden. Durch die Bereitstellung von asynchronem Messaging von vielen zu vielen, das Absender und Empfänger entkoppelt, wird eine sichere und hochverfügbare Kommunikation zwischen unabhängig geschriebenen Anwendungen ermöglicht. Pub / Sub bietet latenzarme, dauerhafte Nachrichtenübertragung, mit deren Hilfe mehrere Anwendungen schnell integriert werden können. Das Pub / Sub-Messaging ermöglicht ereignisgesteuerte Architekturen und asynchrone Ereignisbenachrichtigungen und verbessert gleichzeitig die Leistung, Zuverlässigkeit und Skalierbarkeit in einer verteilten Umgebung.

2. Nachrichtenbroker / Nachrichtenwarteschlange

Mit Message Broker können Anwendungen kommunizieren, indem sie Nachrichten / Ereignisse aneinander senden. Anwendungen veröffentlichen Nachrichten an den Nachrichtenbroker, die einen temporären Nachrichtenspeicher bereitstellen, und Verbraucheranwendungen verwenden diese Nachrichten.

3. Verlag / Produzent

Publisher überträgt Ereignisse an Broker.

4. Abonnent / Verbraucher

Der Abonnent ruft Ereignisse vom Broker ab.

Über Apache Kafka

Apache Kafka ist eine Open-Source-Lösung für verteiltes Pub-Sub-Messaging, die ursprünglich bei LinkedIn entwickelt wurde. Apache Kafka besteht aus mehreren Knoten, die als Brokers (Message Brokers) bezeichnet werden. Broker sind dafür verantwortlich, Nachrichten (Leader) anzunehmen und die Nachrichten an die übrigen Broker im Cluster (Follower) zu replizieren. Die verteilte Natur von Apache Kafka ermöglicht eine Skalierung des Systems und bietet Hochverfügbarkeit (HA) für den Fall eines Knotenausfalls. Die Mitgliedschaft (Anführer und Anhänger) von Brokers in einem Cluster wird über Apache Zookeeper, ein weiteres Open-Source-Framework für verteilte Mitglieder, verfolgt und verwaltet.

Über Amazon Kinesis

Amazon Kinesis, ebenfalls eine Pub-Sub-Messaging-Lösung, wird von Amazon Web Services (AWS) gehostet und bietet ähnliche Funktionen wie Apache Kafka. Amazon Kinesis ist ein vollständig verwalteter Dienst, der in einer bestimmten AWS-Region (d. H. Us-east-1) gehostet wird und sich über mehrere Availability Zones (d. H. Us-east-1a) erstreckt. Ähnlich wie Apache Kafka ist Amazon Kinesis dafür verantwortlich, die Nachrichten des Endbenutzers anzunehmen und in Zonen mit mehreren Verfügbarkeitsbereichen zu replizieren, um eine hohe Verfügbarkeit und Beständigkeit zu gewährleisten. Durch den vollständig verwalteten Aspekt von Amazon Kinesis müssen Benutzer keine Infrastrukturen warten oder sich Gedanken über die Details der Funktionen wie Replikation oder andere Systemkonfigurationen machen.

Hauptunterschiede zwischen Apache Kafka und Kinesis

Verweise:
http://go.datapipe.com/whitepaper-kafka-vs-kinesis-download