Utilisation de Streaming avec Apache Kafka

Utilisez Apache Kafka avec Oracle Cloud Infrastructure Streaming.

Oracle Cloud Infrastructure Streaming permet aux utilisateurs d'Apache Kafka de se décharger des opérations de configuration, de maintenance et de gestion d'infrastructure exigées par l'hébergement de votre propre cluster ZooKeeper et Kafka.

Streaming est compatible avec la plupart des API Kafka, ce qui vous permet d'utiliser des applications écrites pour Kafka afin d'envoyer des messages vers le service Streaming et d'en recevoir sans avoir à réécrire votre code. Pour plus d'informations, reportez-vous à Utilisation des API Kafka.

La diffusion en continu peut également utiliser l'écosystème Kafka Connect pour interagir directement avec des sources externes telles que des bases de données, des banques d'objets ou des microservices sur Oracle Cloud. Les connecteurs Kafka peuvent créer, publier et distribuer facilement et automatiquement des rubriques tout en tirant parti du débit élevé et de la durabilité du service Streaming. Pour plus d'informations, reportez-vous à Utilisation de Kafka Connect.

Les cas d'emploi pour Streaming et Kafka incluent les suivants :

  • Déplacement de données de Streaming vers Autonomous Data Warehouse via le connecteur JDBC pour effectuer des opérations de visualisation et d'analyse avancées.

  • Utilisez le connecteur Oracle GoldenGate pour Big Data Service afin de créer une application orientée événement.

  • Déplacer des données de Streaming vers Oracle Object Storage via le connecteur HDFS/S3 pour le stockage à long terme ou l'exécution de travaux Hadoop/Spark.

Prise en charge des API Kafka

Streaming est entièrement compatible en amont avec les dernières versions des API Kafka. Streaming prend en charge les API Kafka suivantes :

  • Producer (versions 0.10.0 et ultérieures)
  • Consumer (versions 0.10.0 et ultérieures)
  • Connect (versions 0.10.0.0 et ultérieures)
  • Admin (versions 0.10.1.0 et ultérieures)
  • Group Management (versions 0.10.0 et ultérieures)

Les API et fonctionnalités Kafka suivantes ne sont pas encore implémentées dans le service Streaming :

Clients Kafka

Bien que de nombreux clients Kafka soient disponibles, nous recommandons les clients qui ont été entièrement testés et qui fonctionnent avec le service Streaming.

Streaming prend en charge toutes les versions d'apache-kafka-java.

Streaming prend également en charge les clients Kafka suivants au mieux des possibilités :

Exigences et limites

L'implémentation de la compatibilité Kafka dans Streaming entraîne les configurations, limitations et comportements suivants.

Configuration sans perte

Streaming prend uniquement en charge les configurations Kafka sans perte. Les données sont répliquées de trois façons. Les messages des émetteurs ne lancent pas d'accusé de réception à partir de Streaming tant qu'au moins deux répliques ne sont pas synchronisées.

Noms de flux de données uniques

Si un compartiment contient des flux de données portant le même nom, vous ne pouvez pas utiliser Kafka avec Streaming avant de supprimer les flux de données en double, sauf si ceux-ci se trouvent dans des pools de flux de données différents. Un compartiment peut comporter deux flux de données portant le même nom si ces derniers se trouvent dans des pools de flux de données différents.

Dans le cas contraire, les noms de flux de données en double sont signalés par une erreur d'échec d'authentification. Si vous ne voulez pas supprimer les flux de données, contactez l'équipe Streaming afin qu'ils soient renommés sans perte de données.

Recyclage de connexion d'équilibrage de charge

Etant donné que le protocole Kafka utilise des connexions TCP à long terme, la couche de compatibilité Kafka de Streaming implémente un mécanisme d'équilibrage de charge pour équilibrer régulièrement les connexions entre les noeuds frontaux. Ce mécanisme ferme régulièrement les connexions pour en forcer de nouvelles. La plupart des kits SDK Kafka gèrent automatiquement ces déconnexions lors de l'utilisation, mais la production dans Streaming à l'aide de l'API Kafka peut entraîner des erreurs de déconnexion. Vous pouvez limiter ces déconnexions en ajoutant de nouvelles tentatives à vos demandes. Les nouvelles tentatives font partie du kit SDK Kafka et sont activées automatiquement. Vous pouvez configurer explicitement leur comportement.