Apache Kafka-Migration zu Azure
Apache Kafka ist ein hoch skalierbares und fehlertolerantes verteiltes Messaging-System, das eine Publish-Subscribe-Architektur implementiert. Es wird als Aufnahmeschicht in Echtzeitstreamingszenarien verwendet, z. B. Internet of Things und Echtzeitprotokollüberwachungssysteme. Es wird auch zunehmend als unveränderlicher Anfügedatenspeicher in Kappa-Architekturen verwendet.
Apache, Apache Spark®, ApacheHadoop®, Apache® HBase, Apache Storm®, Apache Sqoop®, Apache Kafka® und das Flammenlogo sind entweder eingetragene Marken oder Marken der Apache Software Foundation in den USA und/oder anderen Ländern. Es wird nicht impliziert, dass eine Unterstützung der Apache Software Foundation vorliegt, wenn diese Marken verwendet werden.
Migrationsansatz
In diesem Artikel werden verschiedene Strategien für die Migration von Kafka zu Azure erläutert:
- Migrieren von Kafka zur Azure-Infrastruktur als Dienst (IaaS)
- Migrieren von Kafka zu Azure Event Hubs für Kafka
- Migrieren von Kafka auf Azure HDInsight
- Verwenden von Azure Kubernetes Service (AKS) mit Kafka auf HDInsight
- Verwenden von Kafka auf AKS mit dem Strimzi-Operator
Hier ist ein Entscheidungsflussdiagramm für die Entscheidung, welche Strategie verwendet werden soll.
Migrieren von Kafka zu Azure IaaS
Eine Möglichkeit zum Migrieren von Kafka zu Azure IaaS finden Sie unter Kafka auf virtuellen Ubuntu-Computern.
Migrieren von Kafka zu Event Hubs für Kafka
Event Hubs stellt einen Endpunkt bereit, der mit den Apache Kafka-Produzenten- und Consumer-APIs kompatibel ist. Die meisten Apache Kafka-Clientanwendungen können diesen Endpunkt verwenden, sodass Sie ihn als Alternative zum Ausführen eines Kafka-Clusters auf Azure verwenden können. Der Endpunkt unterstützt Clients, die API-Versionen 1.0 und höher verwenden. Weitere Informationen zu diesem Feature finden Sie in der Übersicht über Event Hubs für Apache Kafka.
Informationen zum Migrieren Ihrer Apache Kafka-Anwendungen zur Verwendung von Event Hubs finden Sie unter Migrieren zu Event Hubs für Apache Kafka-Ökosysteme.
Features von Kafka und Event Hubs
Ähnlichkeiten zwischen Kafka und Event Hubs | Unterschiede in Kafka und Event Hubs |
---|---|
Verwenden von Partitionen | Plattform als Dienst im Vergleich zu Software |
Partitionen sind unabhängig | Partitionierung |
Verwenden eines clientseitigen Cursorkonzepts | Apis |
Kann auf sehr hohe Workloads skaliert werden | Laufzeit |
Nahezu identisch konzeptionell | Protokolle |
Das HTTP-Protokoll für den Empfang wird nicht verwendet. | Beständigkeit |
Sicherheit | |
Drosselung |
Partitionierungsunterschiede
Kafka | Ereignis-Hubs |
---|---|
Die Partitionsanzahl verwaltet die Skalierung. | Durchsatzeinheiten verwalten Skalierung. |
Sie müssen partitionsübergreifend Lastenausgleichspartitionen auf allen Computern laden. | Lastenausgleich ist automatisch. |
Sie müssen manuell erneuthardieren, indem Sie "Teilen" und "Zusammenführen" verwenden. | Die Neupartitionierung ist nicht erforderlich. |
Haltbarkeitsunterschiede
Kafka | Ereignis-Hubs |
---|---|
Standardmäßig veränderlich | Immer langlebig |
Repliziert, nachdem eine Bestätigung (ACK) empfangen wurde | Repliziert, bevor eine ACK gesendet wird |
Hängt von Datenträger und Quorum ab | Bereitgestellt von Speicher |
Sicherheitsunterschiede
Kafka | Ereignis-Hubs |
---|---|
Secure Sockets Layer (SSL) und Simple Authentication and Security Layer (SASL) | Shared Access Signature (SAS) und SASL oder PLAIN RFC 4618 |
Dateiähnliche Zugriffssteuerungslisten | Politik |
Optionale Transportverschlüsselung | Obligatorische Transport Layer Security (TLS) |
Benutzerbasiert | Tokenbasiert (unbegrenzt) |
Weitere Unterschiede
Kafka | Ereignis-Hubs |
---|---|
Drosselt nicht | Unterstützt Drosselung |
Verwendet ein proprietäres Protokoll. | Verwendet das AMQP 1.0-Protokoll. |
Verwendet nicht HTTP zum Senden | Verwendet HTTP-Sende- und Batchsendungen |
Migrieren von Kafka auf HDInsight
Sie können Kafka auf HDInsight nach Kafka migrieren. Weitere Informationen finden Sie unter Was ist Apache Kafka in HDInsight?.
Verwenden von AKS mit Kafka auf HDInsight
Weitere Informationen finden Sie unter Verwenden von AKS mit Apache Kafka auf HDInsight.
Verwenden von Kafka auf AKS mit dem Strimzi-Operator
Weitere Informationen finden Sie unter Bereitstellen eines Kafka-Clusters auf AKS mithilfe von Strimzi.
Kafka-Datenmigration
Sie können das MirrorMaker-Tool von Kafka verwenden, um Themen von einem Cluster in einen anderen zu replizieren. Diese Technik kann Ihnen beim Migrieren von Daten helfen, nachdem ein Kafka-Cluster bereitgestellt wurde. Weitere Informationen finden Sie unter Verwenden von MirrorMaker zum Replizieren von Apache Kafka-Themen mit Kafka auf HDInsight.
Der folgende Migrationsansatz verwendet Spiegelung:
Verschieben Sie die Produzenten zuerst. Wenn Sie die Produzenten migrieren, verhindern Sie die Produktion neuer Nachrichten auf dem Quell-Kafka.
Nachdem die Quelle Kafka alle verbleibenden Nachrichten verbraucht hat, können Sie die Verbraucher migrieren.
Die Implementierung umfasst die folgenden Schritte:
Ändern Sie die Kafka-Verbindungsadresse des Produzentenclients so, dass sie auf die neue Kafka-Instanz verweist.
Starten Sie die Produzenten-Geschäftsdienste neu, und senden Sie neue Nachrichten an die neue Kafka-Instanz.
Warten Sie, bis die Daten in der Quell-Kafka verbraucht werden.
Ändern Sie die Kafka-Verbindungsadresse des Consumerclients so, dass sie auf die neue Kafka-Instanz verweist.
Starten Sie die Verbraucher-Geschäftsdienste neu, um Nachrichten aus der neuen Kafka-Instanz zu nutzen.
Stellen Sie sicher, dass Verbraucher erfolgreich Daten aus der neuen Kafka-Instanz abrufen können.
Überwachen des Kafka-Clusters
Sie können Azure Monitor-Protokolle verwenden, um Protokolle zu analysieren, die Apache Kafka auf HDInsight generiert. Weitere Informationen finden Sie unter Analysieren von Protokollen für Apache Kafka in HDInsight.
Apache Kafka Streams-API
Die Kafka Streams-API ermöglicht es, Daten nahezu in Echtzeit zu verarbeiten und Daten zu verknüpfen und zu aggregieren. Weitere Informationen finden Sie unter Einführung in Kafka Streams: Stream Processing Made Simple - Confluent.
Die Microsoft- und Confluent-Partnerschaft
Confluent bietet einen cloud-nativen Dienst für Apache Kafka. Microsoft und Confluent haben eine strategische Allianz. Weitere Informationen finden Sie in den folgenden Ressourcen:
- Confluent und Microsoft kündigen strategische Allianz an
- Einführung einer nahtlosen Integration zwischen Microsoft Azure und Confluent Cloud
Beitragende
Microsoft verwaltet diesen Artikel. Die folgenden Mitwirkenden haben diesen Artikel geschrieben.
Hauptautoren:
- Namrata Maheshwary | Senior Cloud Solution Architect
- Raja N | Director, Kundenerfolg
- Hideo Takgi | Cloud-Lösungsarchitekt
- Ram Yerrabotu | Senior Cloud Solution Architect
Andere Mitwirkende:
- Ram Baskaran | Senior Cloud Solution Architect
- Jason Bouska | Senior Software Engineer
- Eugene Chung | Senior Cloud Solution Architect
- Pawan Hosatti | Senior Cloud Solution Architect - Engineering
- Daman Kaur | Cloud-Lösungsarchitekt
- Danny Liu | Senior Cloud Solution Architect - Engineering
- Jose Mendez Senior Cloud Solution Architect
- Ben Sadeghi | Senior Specialist
- Sunil Sattiraju | Senior Cloud Solution Architect
- Amanjeet Singh | Hauptprogramm-Manager
- Nagaraj Seeplapudur Venkatesan | Senior Cloud Solution Architect - Engineering
Um nicht-öffentliche LinkedIn-Profile anzuzeigen, melden Sie sich bei LinkedIn an.
Nächste Schritte
Azure-Produkteinführungen
- Einführung in Azure Data Lake Storage
- Was ist Apache Spark in HDInsight?
- Was ist Apache Hadoop in HDInsight?
- Was ist Apache HBase in HDInsight?
- Was ist Apache Kafka in HDInsight?
- Übersicht über die Unternehmenssicherheit in HDInsight
Azure-Produktreferenz
- Microsoft Entra-Dokumentation
- Azure Cosmos DB-Dokumentation
- Dokumentation zu Azure Data Factory
- Dokumentation zu Azure Databricks
- Event Hubs-Dokumentation
- Dokumentation zu Azure Functions
- HDInsight-Dokumentation
- Dokumentation zur Microsoft Purview-Datengovernance
- Dokumentation zu Azure Stream Analytics