Utilisation du service de diffusion en continu avec Apache Kafka
Utilisez Apache Kafka avec Oracle Cloud Infrastructure Streaming.
Le service de diffusion en continu pour Oracle Cloud Infrastructure permet aux utilisateurs d'Apache Kafka de décharger la configuration, la maintenance et la gestion de l'infrastructure requises pour héberger votre propre grappe Zookeeper et Kafka.
Le service de flux est compatible avec la plupart des API Kafka, ce qui vous permet d'utiliser des applications écrites pour Kafka pour envoyer des messages au service de flux et en recevoir sans avoir à réécrire votre code. Pour plus d'informations, voir Utilisation des API Kafka.
Le service de flux peut également utiliser l'écosystème Kafka Connect pour interagir directement avec des sources externes telles que des bases de données, des magasins d'objets ou tout microservice sur Oracle Cloud. Les connecteurs Kafka peuvent créer, publier et fournir des rubriques facilement et automatiquement tout en tirant parti du haut débit et de la durabilité du service de flux. Pour plus d'informations, voir Utilisation de Kafka Connect.
Les cas d'utilisation du service de diffusion en continu et de Kafka sont les suivants :
-
Déplacer des données du service de flux vers une base de données Autonomous Data Warehouse au moyen du connecteur JDBC pour effectuer des analyses et des visualisations avancées.
-
Utiliser le connecteur Oracle GoldenGate pour le service de mégadonnées afin de créer une application basée sur les événements.
-
Déplacer des données du service de flux vers le service de stockage d'objets d'Oracle au moyen du connecteur HDFS/S3 pour un stockage à long terme ou pour exécuter des tâches Hadoop/Spark.
Prise en charge des API Kafka
Le service de diffusion en continu est totalement compatible avec les dernières versions des API Kafka. Le service de diffusion en continu prend en charge les API Kafka suivantes :
- Producteur (v0.10.0 et versions ultérieures)
- Consommateur (v0.10.0 et versions ultérieures)
- Connexion (v0.10.0.0 et versions ultérieures)
- Admin (v0.10.1.0 et versions ultérieures)
- Gestion des groupes (v0.10.0 et versions ultérieures)
Les API et fonctions Kafka suivantes ne sont pas encore mises en oeuvre dans le service de diffusion en continu :
Clients Kafka
Bien que de nombreux clients Kafka soient disponibles, nous recommandons les clients qui ont été entièrement testés et certifiés pour fonctionner avec le service de diffusion en continu.
Le service de diffusion en continu prend en charge toutes les versions d'apache-kafka-java.
Le service de diffusion en continu prend également en charge les clients Kafka suivants, le cas échéant :
Exigences et limites
L'implémentation de la compatibilité Kafka dans le service de diffusion en continu entraîne les configurations, limitations et comportements suivants.
Configuration sans perte
Le service de diffusion en continu prend uniquement en charge les configurations Kafka sans perte. Les données sont répliquées de trois façons. Les messages des producteurs ne lancent pas d'accusé de réception (ACK) à partir du service de diffusion en continu tant qu'au moins deux répliques ne sont pas synchronisées.
Noms de flux uniques
Si vous avez des flux portant les mêmes noms dans un compartiment, vous ne pouvez pas utiliser Kafka avec le service de flux tant que vous n'avez pas supprimé les flux en double, sauf si ceux-ci se trouvent dans des groupes de flux différents. Deux flux portant le même nom peuvent exister dans le même compartiment uniquement si les flux se trouvent dans des groupes de flux différents.
Les noms de flux en double, sinon, se manifestent au moyen d'une erreur "Échec de l'authentification". Si vous ne voulez pas supprimer vos flux, communiquez avec l'équipe du service Diffusion en continu afin que nous puissions renommer vos flux sans perte de données.
Recyclage de connexions pour l'équilibrage de charge
Comme le protocole Kafka utilise des connexions TCP à long terme, la couche de compatibilité Kafka du service de diffusion en continu met en oeuvre un mécanisme d'équilibrage de charge pour équilibrer périodiquement les connexions entre les noeuds frontaux. Ce mécanisme ferme périodiquement des connexions afin d'en forcer de nouvelles. La plupart des trousses SDK Kafka gèrent ces déconnexions automatiquement lors de la consommation. Toutefois, la production vers le service de diffusion en continu à l'aide de l'API Kafka peut générer des erreurs de déconnexion. Vous pouvez atténuer les déconnexions en ajoutant des nouvelles tentatives à vos demandes. Les nouvelles tentatives font partie de la trousse SDK Kafka et sont activées automatiquement. Vous pouvez configurer explicitement leur comportement.