Apache Kafka est un système de messagerie distribué hautement évolutif et tolérant aux pannes qui implémente une architecture de publication-abonnement. Il est utilisé comme couche d’ingestion dans des scénarios de diffusion en continu en temps réel, tels que les systèmes de surveillance des journaux en temps réel et IoT. Il est également utilisé de plus en plus comme magasin de données en annexe uniquement immuable dans les architectures Kappa.
Apache®, Apache Spark®, Apache Hadoop®, Apache HBase, Apache Storm®, Apache Sqoop®, Apache Kafka® et le logo de flamme sont des marques déposées ou des marques de l’Apache Software Foundation aux États-Unis et/ou dans d’autres pays. L’utilisation de ces marques n’implique aucune approbation de l’Apache Software Foundation.
Approche de migration
Cet article présente différentes stratégies pour la migration de Kafka vers Azure :
- Migrer Kafka vers Azure Infrastructure as a service (IaaS)
- Migrer Kafka vers Azure Event Hubs pour Kafka
- Migrer Kafka sur Azure HDInsight
- Utiliser AKS avec Kafka sur HDInsight
Voici un organigramme de décision pour décider de celle à utiliser :
Migrer Kafka vers Azure Infrastructure as a service (IaaS)
Pour obtenir un moyen de migrer Kafka vers Azure IaaS, consultez Kafka sur les machines virtuelles Ubuntu.
Migrer Kafka vers Azure Event Hubs pour Kafka
Event Hubs fournit un point de terminaison compatible avec les API de producteur et de consommateur Apache Kafka. Ce point de terminaison peut être utilisé par la plupart des applications clientes Apache Kafka. Il s’agit donc d’une alternative à l’exécution d’un cluster Kafka sur Azure. Le point de terminaison prend en charge les clients qui utilisent les versions 1.0 et ultérieures des API. Pour plus d’informations sur cette fonctionnalité, consultez Présentation d’Azure Event Hubs pour Apache Kafka.
Pour savoir comment migrer vos applications Apache Kafka afin d’utiliser Azure Event Hubs, consultez Migrer vers Azure Event Hubs pour les écosystèmes Apache Kafka.
Différences de fonctionnalités Kafka et Event Hubs
En quoi Kafka et Event Hubs sont-ils similaires ? | En quoi Kafka et Event Hubs sont-ils différents ? |
---|---|
Tous deux utilisent des partitions. | Il existe des différences dans ces domaines : |
Les partitions sont indépendantes. | • PaaS et logiciel |
Tous deux utilisent un concept de curseur côté client. | • Partitionnement |
Tous deux peuvent être mis à l’échelle vers des charges de travail très élevées. | • API |
Conceptuellement, ils sont presque identiques. | • Runtime |
Aucun n’utilise le protocole HTTP pour la réception. | • Protocoles |
• Durabilité | |
• Sécurité | |
• Limitation |
Différences de partitionnement
Kafka | Event Hubs |
---|---|
La mise à l’échelle est gérée par le nombre de partitions. | La mise à l’échelle est gérée par des unités de débit. |
Vous devez équilibrer la charge des partitions entre les machines. | L’équilibrage de charge est automatique. |
Vous devez repartitionner manuellement à l’aide du fractionnement et de la fusion. | Le repartitionnement n’est pas obligatoire. |
Différences de durabilité
Kafka | Event Hubs |
---|---|
Volatile par défaut | Toujours durable |
Répliqué après ACK | Répliqué avant ACK |
Dépend du disque et du quorum | Fourni par le stockage |
Différences de sécurité
Kafka | Event Hubs |
---|---|
SSL et SASL | SAS et SASL/PLAIN RFC 4618 |
Listes de contrôle d’accès de type fichier | Policy |
Chiffrement de transport facultatif | TLS obligatoire |
Basé sur l’utilisateur | Basé sur un jeton (illimité) |
Autres différences
Kafka | Event Hubs |
---|---|
Kafka n’est pas limité. | Event Hubs prend en charge la limitation. |
Kafka utilise un protocole propriétaire. | Event Hubs utilise le protocole AMQP 1.0. |
Kafka n’utilise pas HTTP pour l’envoi. | Event Hubs utilise l’envoi HTTP et l’envoi en lot. |
Migrer Kafka sur Azure HDInsight
Vous pouvez migrer Kafka vers Kafka sur Azure HDInsight. Pour plus d’informations, consultez Présentation d’Apache Kafka dans Azure HDInsight.
Utiliser AKS avec Kafka sur HDInsight
Consultez Utiliser Azure Kubernetes Service avec Apache Kafka sur HDInsight.
Migration de données Kafka
Vous pouvez utiliser l’outil MirrorMaker de Kafka pour répliquer des rubriques d’un cluster à un autre. Cette technique peut vous aider à migrer des données après l’approvisionnement d’un cluster Kafka. Pour plus d’informations, consultez Utiliser MirrorMaker pour répliquer des rubriques Apache Kafka avec Kafka sur HDInsight
Voici une approche de migration qui utilise la mise en miroir :
- Déplacez d’abord les producteurs, puis déplacez les consommateurs. Lorsque vous migrez les producteurs, vous empêchez la production de nouveaux messages sur le Kafka source.
- Une fois que le Kafka source a consommé tous les messages restants, vous pouvez migrer les consommateurs.
Voici les étapes d’implémentation :
- Modifiez l’adresse de connexion Kafka du client producteur pour pointer vers la nouvelle instance Kafka.
- Redémarrez les services métier du producteur et envoyez de nouveaux messages à la nouvelle instance Kafka.
- Attendez que les données du Kafka source soient consommées.
- Modifiez l’adresse de connexion Kafka du client consommateur pour pointer vers la nouvelle instance Kafka.
- Redémarrez les services métier du consommateur pour consommer des messages à partir de la nouvelle instance Kafka.
- Vérifiez que les consommateurs réussissent à obtenir des données à partir de la nouvelle instance Kafka.
Surveiller le cluster Kafka
Vous pouvez utiliser les journaux Azure Monitor pour analyser les journaux générés par Apache Kafka sur HDInsight. Pour plus d’informations, consultez Analyser les journaux pour Apache Kafka sur HDInsight.
API Apache Kafka Streams
L’API Kafka Streams permet de traiter des données en quasi-temps réel et offre la possibilité de joindre et d’agréger des données. Il existe de nombreuses fonctionnalités supplémentaires de l’API à connaître. Pour plus d’informations, consultez Présentation de Kafka Streams : Traitement de flux simplifié - Confluent.
Le partenariat Microsoft et Confluent
Confluent fournit un service natif cloud pour Apache Kafka. Microsoft et Confluent ont une alliance stratégique. Pour plus d'informations, consultez les pages suivantes :
- Confluent et Microsoft annoncent une alliance stratégique
- Présentation de l’intégration transparente entre Microsoft Azure et Confluent Cloud
Contributeurs
Cet article est géré par Microsoft. Il a été écrit à l’origine par les contributeurs suivants.
Auteurs principaux :
- Namrata Maheshwary | Architecte de solutions cloud senior
- Raja N | Directeur, Réussite des clients
- Hideo Takagi | Architecte de solutions cloud
- Ram Yerrabotu | Architecte de solutions cloud senior
Autres contributeurs :
- Ram Baskaran | Architecte de solutions cloud senior
- Jason Bouska | Ingénieur logiciel senior
- Eugene Chung | Architecte de solutions cloud senior
- Pawan Hosatti | Architecte de solutions cloud senior - Ingénierie
- Daman Kaur | Architecte de solutions cloud
- Danny Liu | Architecte de solutions cloud senior - Ingénierie
- Jose Mendez | Architecte de solutions cloud senior
- Ben Sadeghi | Spécialiste senior
- Sunil Sattiraju | Architecte de solutions cloud senior
- Amanjeet Singh | Responsable principal du programme
- Nagaraj Seeplapudur Venkatesan | Architecte de solutions cloud senior - Ingénierie
Pour afficher les profils LinkedIn non publics, connectez-vous à LinkedIn.
Étapes suivantes
Présentations des produits Azure
- Introduction à Azure Data Lake Storage Gen2
- Présentation d’Apache Spark dans Azure HDInsight
- Qu’est-ce qu’Apache Hadoop dans Azure HDInsight ?
- Qu’est-ce qu’Apache HBase dans Azure HDInsight
- Présentation d’Apache Kafka dans Azure HDInsight
- Vue d’ensemble de la sécurité d’entreprise dans Azure HDInsight
Informations de référence sur les produits Azure
- Documentation Microsoft Entra
- Documentation Azure Cosmos DB
- Documentation Azure Data Factory
- Documentation Azure Databricks
- Documentation Azure Event Hubs
- Documentation Azure Functions
- Documentation Azure HDInsight
- Documentation sur la gouvernance des données Microsoft Purview
- Documentation d’Azure Stream Analytics
- Azure Synapse Analytics
Autres
- Pack Sécurité Entreprise pour Azure HDInsight
- Développer des programmes MapReduce Java pour Apache Hadoop sur HDInsight
- Utiliser Apache Sqoop avec Hadoop dans HDInsight
- Vue d’ensemble d’Apache Spark Streaming
- Tutoriel sur Structured Streaming
- Utiliser Azure Event Hubs à partir d’applications Apache Kafka