Migrazione di Apache Kafka ad Azure
Apache Kafka è un sistema di messaggistica distribuito altamente scalabile e a tolleranza di errore che implementa un'architettura di pubblicazione-sottoscrizione. Viene usato come livello di inserimento in scenari di streaming in tempo reale, ad esempio Internet delle cose e sistemi di monitoraggio dei log in tempo reale. Viene usato sempre più spesso come archivio dati di sola accodamento non modificabile nelle architetture Kappa.
Apache®, Apache Spark®, Apache Hadoop®, Apache HBase, Apache Storm®, Apache Sqoop®, Apache Kafka® e il logo flame sono marchi registrati o marchi di Apache Software Foundation negli Stati Uniti e/o in altri paesi. L'uso di questi marchi non implica alcuna approvazione da parte di Apache Software Foundation.
Approccio alla migrazione
Questo articolo presenta varie strategie per la migrazione di Kafka ad Azure:
- Eseguire la migrazione di Kafka all'infrastruttura distribuita come servizio di Azure (IaaS)
- Eseguire la migrazione di Kafka a Hub eventi di Azure per Kafka
- Eseguire la migrazione di Kafka in Azure HDInsight
- Usare il servizio Azure Kubernetes con Kafka in HDInsight
- Usare Kafka nel servizio Azure Kubernetes con l'operatore Strimzi
Ecco un diagramma di flusso decisionale per decidere quale strategia usare.
Eseguire la migrazione di Kafka ad Azure IaaS
Per un modo per eseguire la migrazione di Kafka ad Azure IaaS, vedere Kafka in macchine virtuali Ubuntu.
Eseguire la migrazione di Kafka a Hub eventi per Kafka
Hub eventi fornisce un endpoint compatibile con le API producer e consumer apache Kafka. La maggior parte delle applicazioni client Apache Kafka può usare questo endpoint, quindi è possibile usarlo come alternativa all'esecuzione di un cluster Kafka in Azure. L'endpoint supporta i client che usano le versioni API 1.0 e successive. Per altre informazioni su questa funzionalità, vedere Panoramica di Hub eventi per Apache Kafka.
Per informazioni su come eseguire la migrazione delle applicazioni Apache Kafka per l'uso di Hub eventi, vedere Eseguire la migrazione a Hub eventi per gli ecosistemi Apache Kafka.
Funzionalità di Kafka e Hub eventi
Analogie tra Kafka e Hub eventi | Differenze in Kafka e Hub eventi |
---|---|
Usare le partizioni | Piattaforma distribuita come servizio e software |
Le partizioni sono indipendenti | Partizionamento |
Usare un concetto di cursore lato client | API (Interfaccia di Programmazione delle Applicazioni) |
Scalabilità fino a carichi di lavoro molto elevati | Tempo di esecuzione |
Concettualmente quasi identico | Protocolli |
Nessuno dei due usa il protocollo HTTP per la ricezione | Durabilità |
Sicurezza | |
Regolazione |
Differenze di partizionamento
Kafka | Hub eventi |
---|---|
Il numero di partizioni gestisce la scalabilità. | Le unità elaborate gestiscono la scalabilità. |
È necessario bilanciare il carico delle partizioni tra computer. | Il bilanciamento del carico è automatico. |
È necessario eseguire manualmente la partizione usando la divisione e l'unione. | Il ripartizionamento non è obbligatorio. |
Differenze di durabilità
Kafka | Hub eventi |
---|---|
Volatile per impostazione predefinita | Sempre durevole |
Replicato dopo la ricezione di un riconoscimento (ACK) | Replicato prima dell'invio di un ACK |
Dipende dal disco e dal quorum | Fornito dall'archiviazione |
Differenze di sicurezza
Kafka | Hub eventi |
---|---|
Secure Sockets Layer (SSL) e autenticazione semplice e livello di sicurezza (SASL) | Firma di accesso condiviso e SASL o PLAIN RFC 4618 |
Elenchi di controllo di accesso simili ai file | Politica |
Crittografia del trasporto facoltativa | Transport Layer Security (TLS) obbligatorio |
Basato sull'utente | Basato su token (illimitato) |
Altre differenze
Kafka | Hub eventi |
---|---|
Non limita | Supporta la limitazione |
Usa un protocollo proprietario | Usa il protocollo AMQP 1.0 |
Non usa HTTP per l'invio | Usa l'invio HTTP e l'invio batch |
Eseguire la migrazione di Kafka in HDInsight
È possibile eseguire la migrazione di Kafka a Kafka in HDInsight. Per altre informazioni, vedere Che cos'è Apache Kafka in HDInsight?.
Usare il servizio Azure Kubernetes con Kafka in HDInsight
Per altre informazioni, vedere Usare il servizio Azure Kubernetes con Apache Kafka in HDInsight.
Usare Kafka nel servizio Azure Kubernetes con l'operatore Strimzi
Per altre informazioni, vedere Distribuire un cluster Kafka nel servizio Azure Kubernetes usando Strimzi.
Migrazione dei dati Kafka
È possibile usare lo strumento MirrorMaker di Kafka per replicare gli argomenti da un cluster a un altro. Questa tecnica consente di eseguire la migrazione dei dati dopo il provisioning di un cluster Kafka. Per altre informazioni, vedere Usare MirrorMaker per replicare gli argomenti di Apache Kafka con Kafka in HDInsight.
L'approccio di migrazione seguente usa il mirroring:
Spostare prima i produttori. Quando si esegue la migrazione dei producer, si impedisce la produzione di nuovi messaggi nell'origine Kafka.
Dopo che Kafka di origine utilizza tutti i messaggi rimanenti, è possibile eseguire la migrazione dei consumer.
L'implementazione include i passaggi seguenti:
Modificare l'indirizzo di connessione Kafka del client producer in modo che punti alla nuova istanza kafka.
Riavviare i servizi aziendali producer e inviare nuovi messaggi alla nuova istanza kafka.
Attendere l'utilizzo dei dati nell'origine Kafka.
Modificare l'indirizzo di connessione Kafka del client consumer in modo che punti alla nuova istanza kafka.
Riavviare i servizi aziendali consumer per utilizzare i messaggi dalla nuova istanza di Kafka.
Verificare che i consumer abbiano esito positivo nel recupero dei dati dalla nuova istanza kafka.
Monitorare il cluster Kafka
È possibile usare i log di Monitoraggio di Azure per analizzare i log generati da Apache Kafka in HDInsight. Per altre informazioni, vedere Analizzare i log per Apache Kafka in HDInsight.
Apache Kafka Streams API
L'API Kafka Streams consente di elaborare i dati quasi in tempo reale e di unire e aggregare i dati. Per altre informazioni, vedere Introducing Kafka Streams: Stream Processing Made Simple - Confluent.
La partnership tra Microsoft e Confluent
Confluent offre un servizio nativo del cloud per Apache Kafka. Microsoft e Confluent hanno un'alleanza strategica. Per altre informazioni, vedere le risorse seguenti:
- Confluent e Microsoft annunciano alleanze strategiche
- Introduzione all'integrazione senza problemi tra Microsoft Azure e Confluent Cloud
Contributori
Microsoft gestisce questo articolo. I collaboratori seguenti hanno scritto questo articolo.
Autori principali:
- Namrata Maheshwary | Senior Cloud Solution Architect
- Raja N | Director, Customer Success
- Hideo Takagi | Cloud Solution Architect
- Ram Yerrabotu | Senior Cloud Solution Architect
Altri collaboratori:
- 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 Solution Architect
- Danny Liu | Senior Cloud Solution Architect - Engineering
- Jose Mendez Senior Cloud Solution Architect
- Ben Sadeghi | Specialista senior
- Sunil Sattiraju | Senior Cloud Solution Architect
- Amanjeet Singh | Principal Program Manager
- Nabraj Seeplapudur Venkatesan | Senior Cloud Solution Architect - Engineering
Per visualizzare i profili LinkedIn non pubblici, accedere a LinkedIn.
Passaggi successivi
Introduzione ai prodotti Azure
- Introduzione ad Archiviazione di Azure Data Lake
- Che cos'è Apache Spark in HDInsight?
- Che cos'è Apache Hadoop in HDInsight?
- Che cos'è Apache HBase in HDInsight?
- Che cos'è Apache Kafka in HDInsight?
- Panoramica della sicurezza aziendale in HDInsight
Informazioni di riferimento sui prodotti Azure
- documentazione di Microsoft Entra
- Documentazione di Azure Cosmos DB
- Documentazione di Azure Data Factory
- Documentazione di Azure Databricks
- Documentazione di Hub eventi
- Documentazione di Funzioni di Azure
- documentazione di HDInsight
- Documentazione sulla governance dei dati di Microsoft Purview
- Documentazione di Analisi di flusso di Azure
- Azure Synapse Analytics