Apache Kafka är ett mycket skalbart och feltolerant distribuerat meddelandesystem som implementerar en publiceringsprenumereringsarkitektur. Det används som ett inmatningslager i realtidsströmningsscenarier, till exempel IoT- och realtidsloggövervakningssystem. Det används också i allt högre grad som det oföränderliga tilläggsdatalagret i Kappa-arkitekturer.
Apache, Apache Spark®, Apache Hadoop®, Apache HBase, Apache Storm®, Apache Sqoop®, Apache Kafka® och flamlogotypen är antingen registrerade varumärken eller varumärken som tillhör Apache Software Foundation i USA och/eller andra länder.® Inget godkännande från Apache Software Foundation underförstås av användningen av dessa märken.
Migreringsmetod
I den här artikeln beskrivs olika strategier för migrering av Kafka till Azure:
- Migrera Kafka till Azures infrastruktur som en tjänst (IaaS)
- Migrera Kafka till Azure Event Hubs för Kafka
- Migrera Kafka på Azure HDInsight
- Använda AKS med Kafka i HDInsight
Här är ett beslutsflödesschema för att bestämma vilket som ska användas:
Migrera Kafka till Azures infrastruktur som en tjänst (IaaS)
Ett sätt att migrera Kafka till Azure IaaS finns i Kafka på virtuella Ubuntu-datorer.
Migrera Kafka till Azure Event Hubs för Kafka
Event Hubs tillhandahåller en slutpunkt som är kompatibel med Apache Kafka-producent- och konsument-API:er. Den här slutpunkten kan användas av de flesta Apache Kafka-klientprogram, så det är ett alternativ till att köra ett Kafka-kluster på Azure. Slutpunkten stöder klienter som använder version 1.0 och senare av API:erna. Mer information om den här funktionen finns i Översikt över Azure Event Hubs för Apache Kafka.
Information om hur du migrerar dina Apache Kafka-program för att använda Azure Event Hubs finns i Migrera till Azure Event Hubs för Apache Kafka Ecosystems.
Funktionsskillnader för Kafka och Event Hubs
Hur liknar Kafka och Event Hubs? | Hur skiljer sig Kafka och Event Hubs? |
---|---|
Båda använder partitioner. | Det finns skillnader på dessa områden: |
Partitioner är oberoende. | • PaaS jämfört med programvara |
Båda använder ett markörkoncept på klientsidan. | •Partitionering |
Båda kan skalas till mycket höga arbetsbelastningar. | •Api |
Konceptuellt är de nästan desamma. | •Runtime |
Ingen av dem använder HTTP-protokollet för att ta emot. | •Protokoll |
•Hållbarhet | |
•Säkerhet | |
•Strypning |
Partitioneringsskillnader
Kafka | Event Hubs |
---|---|
Skala hanteras med partitionsantal. | Skala hanteras av dataflödesenheter. |
Du måste belastningsutjämningspartitioner mellan datorer. | Belastningsutjämning är automatisk. |
Du måste partitionera om manuellt med hjälp av dela och sammanfoga. | Ompartitionering krävs inte. |
Hållbarhetsskillnader
Kafka | Event Hubs |
---|---|
Flyktig som standard | Alltid beständig |
Replikeras efter ACK | Replikeras före ACK |
Beror på disk och kvorum | Tillhandahålls av lagring |
Säkerhetsskillnader
Kafka | Event Hubs |
---|---|
SSL och SASL | SAS och SASL/PLAIN RFC 4618 |
Filliknande ACL:er | Policy |
Valfri transportkryptering | Obligatorisk TLS |
Användarbaserad | Tokenbaserad (obegränsad) |
Andra skillnader
Kafka | Event Hubs |
---|---|
Kafka begränsar inte. | Event Hubs stöder begränsning. |
Kafka använder ett proprietärt protokoll. | Event Hubs använder AMQP 1.0-protokollet. |
Kafka använder inte HTTP för att skicka. | Event Hubs använder HTTP Send och Batch Send. |
Migrera Kafka på Azure HDInsight
Du kan migrera Kafka till Kafka i Azure HDInsight. Mer information finns i Vad är Apache Kafka i Azure HDInsight?.
Använda AKS med Kafka i HDInsight
Se Använda Azure Kubernetes Service med Apache Kafka i HDInsight.
Kafka-datamigrering
Du kan använda Kafkas MirrorMaker-verktyg för att replikera ämnen från ett kluster till ett annat. Den här tekniken kan hjälpa dig att migrera data när ett Kafka-kluster har etablerats. Mer information finns i Använda MirrorMaker för att replikera Apache Kafka-ämnen med Kafka i HDInsight.
Här är en migreringsmetod som använder spegling:
- Flytta producenterna först och flytta sedan konsumenterna. När du migrerar producenterna förhindrar du produktion av nya meddelanden på källan Kafka.
- När källan Kafka har förbrukat alla återstående meddelanden kan du migrera konsumenterna.
Här är implementeringsstegen:
- Ändra Kafka-anslutningsadressen för producentklienten så att den pekar på den nya Kafka-instansen.
- Starta om producentföretagens tjänster och skicka nya meddelanden till den nya Kafka-instansen.
- Vänta tills data i kafka-källan har förbrukats.
- Ändra Kafka-anslutningsadressen för konsumentklienten så att den pekar på den nya Kafka-instansen.
- Starta om konsumentföretagens tjänster för att använda meddelanden från den nya Kafka-instansen.
- Kontrollera att konsumenterna lyckas hämta data från den nya Kafka-instansen.
Övervaka Kafka-klustret
Du kan använda Azure Monitor-loggar för att analysera loggar som genereras av Apache Kafka i HDInsight. Mer information finns i: Analysera loggar för Apache Kafka på HDInsight.
Apache Kafka Flöden API
Kafka-Flöden-API:et gör det möjligt att bearbeta data nästan i realtid, och det ger möjlighet att koppla och aggregera data. Det finns många fler funktioner i API:et som är värda att känna till. Mer information finns i Introduktion till Kafka Flöden: Stream Processing Made Simple – Confluent.
Microsoft och Confluent-samarbetet
Confluent tillhandahåller en molnbaserad tjänst för Apache Kafka. Microsoft och Confluent har en strategisk allians. Mer information finns i:
- Confluent och Microsoft tillkännager strategisk allians
- Introduktion till sömlös integrering mellan Microsoft Azure och Confluent Cloud
Deltagare
Den här artikeln underhålls av Microsoft. Det har ursprungligen skrivits av följande medarbetare.
Huvudsakliga författare:
- Namrata Maheshwary | Senior Cloud Solution Architect
- Raja N | Direktör, kundframgång
- Hideo Takagi | Molnlösningsarkitekt
- Ram Yerrabotu | Senior Cloud Solution Architect
Övriga medarbetare:
- Ram Baskaran | Senior Cloud Solution Architect
- Jason Bouska | Senior programvarutekniker
- Eugene Chung | Senior Cloud Solution Architect
- Pawan Hosatti | Senior Cloud Solution Architect – Teknik
- Daman Kaur | Molnlösningsarkitekt
- Danny Liu | Senior Cloud Solution Architect – Teknik
- Jose Mendez Senior Cloud Solution Architect
- Ben Sadeghi | Senior Specialist
- Sunil Sattiraju | Senior Cloud Solution Architect
- Amanjeet Singh | Programhanteraren för huvudnamn
- Nagaraj Seeplapudur Venkatesan | Senior Cloud Solution Architect – Teknik
Om du vill se icke-offentliga LinkedIn-profiler loggar du in på LinkedIn.
Nästa steg
Introduktion till Azure-produkter
- Introduktion till Azure Data Lake Storage Gen2
- Vad är Apache Spark i Azure HDInsight?
- Vad är Apache Hadoop i Azure HDInsight?
- Vad är Apache HBase i Azure HDInsight?
- Vad är Apache Kafka i Azure HDInsight?
- Översikt över företagssäkerhet i Azure HDInsight
Produktreferens för Azure
- Microsoft Entra-dokumentation.
- Dokumentation om Azure Cosmos DB
- Dokumentation om Azure Data Factory
- Dokumentation om Azure Databricks
- Dokumentation om Azure Event Hubs
- Azure Functions-dokumentation
- Dokumentation om Azure HDInsight
- Dokumentation om Datastyrning i Microsoft Purview
- Dokumentation om Azure Stream Analytics
- Azure Synapse Analytics
Övrigt
- Enterprise Security Package för Azure HDInsight
- Utveckla Java MapReduce-program för Apache Hadoop i HDInsight
- Använda Apache Sqoop med Hadoop i HDInsight
- Översikt över Apache Spark Streaming
- Självstudier för strukturerad direktuppspelning
- Använda Azure Event Hubs från Apache Kafka-program