Les connecteurs de récepteur Pub/Sub diffusent des messages depuis des sujets Kafka vers des sujets Pub/Sub, ce qui vous permet d'intégrer vos applications basées sur Kafka à Pub/Sub.
Voici quelques cas d'utilisation des connecteurs de récepteur Pub/Sub :
Architectures basées sur des événements. Déclencher le traitement Pub/Sub à partir de messages publiés sur Kafka.
Intégration des services. Envoyez des données de Kafka vers d'autres services ou applications Google Cloud qui consomment des données de Pub/Sub.
Déclenchez des notifications ou des actions en temps réel en fonction des données traitées.
Avant de commencer
Avant de créer un connecteur de récepteur Pub/Sub, assurez-vous de disposer des éléments suivants :
Créez un cluster Managed Service pour Apache Kafka pour votre cluster Connect. Il s'agit du cluster Kafka principal associé au cluster Connect. Il s'agit également du cluster source qui forme une extrémité du pipeline du connecteur.
Créez un cluster Connect pour héberger votre connecteur de récepteur Pub/Sub.
Créez et configurez un sujet Kafka dans le cluster source. Les données sont transférées de ce sujet Kafka vers le sujet Pub/Sub de destination.
Rôles et autorisations nécessaires
Pour obtenir les autorisations nécessaires pour créer un connecteur, demandez à votre administrateur de vous accorder le rôle IAM Éditeur de connecteur Kafka géré (roles/managedkafka.connectorEditor) sur votre projet.
Pour en savoir plus sur l'attribution de rôles, consultez Gérer l'accès aux projets, aux dossiers et aux organisations.
Ce rôle prédéfini contient les autorisations requises pour créer un connecteur. Pour connaître les autorisations exactes requises, développez la section Autorisations requises :
Autorisations requises
Les autorisations suivantes sont requises pour créer un connecteur :
-
Créez un connecteur :
managedkafka.connectors.create
Vous pouvez également obtenir ces autorisations avec des rôles personnalisés ou d'autres rôles prédéfinis.
Accorder des autorisations de publication dans le sujet Pub/Sub
L'agent de service Managed Kafka doit être autorisé à publier des messages dans le sujet Pub/Sub.
Attribuez à l'agent de service le rôle Diffuseur Pub/Sub (roles/pubsub.publisher) sur le projet contenant le sujet Pub/Sub.
Si votre cluster Connect se trouve dans un projet différent de votre cluster Managed Service pour Apache Kafka, consultez Créer un cluster Connect dans un autre projet.
Fonctionnement d'un connecteur de récepteur Pub/Sub
Un connecteur récepteur Pub/Sub extrait les messages d'un ou de plusieurs sujets Kafka et les publie dans un sujet Pub/Sub.
Voici une description détaillée de la façon dont le connecteur de récepteur Pub/Sub copie les données :
Le connecteur consomme les messages d'un ou de plusieurs sujets Kafka dans le cluster source.
Le connecteur écrit les messages dans l'ID du sujet Pub/Sub cible spécifié à l'aide de la propriété de configuration
cps.topic. Cette propriété est obligatoire.Le connecteur nécessite également que le projet Google Cloud contenant le sujet Pub/Sub soit spécifié à l'aide de la propriété de configuration
cps.project. Cette propriété est obligatoire.Le connecteur peut également utiliser un point de terminaison Pub/Sub personnalisé spécifié à l'aide de la propriété
cps.endpoint. Le point de terminaison par défaut est"pubsub.googleapis.com:443".Pour optimiser les performances, le connecteur met en mémoire tampon les messages avant de les publier dans Pub/Sub. Vous pouvez configurer
maxBufferSize,maxBufferBytes,maxDelayThresholdMs,maxOutstandingRequestBytesetmaxOutstandingMessagespour contrôler la mise en mémoire tampon.Un enregistrement Kafka comporte trois composants : des en-têtes, des clés et des valeurs. Le connecteur utilise des convertisseurs de clés et de valeurs pour transformer les données des messages Kafka au format attendu par Pub/Sub. Lorsque vous utilisez des schémas de valeur de structure ou de carte, la propriété
messageBodyNamespécifie le champ ou la clé à utiliser comme corps du message Pub/Sub.Le connecteur peut inclure le sujet, la partition, le décalage et le code temporel Kafka en tant qu'attributs de message en définissant la propriété
metadata.publishsurtrue.Le connecteur peut inclure des en-têtes de message Kafka en tant qu'attributs de message Pub/Sub en définissant la propriété
headers.publishsurtrue.Le connecteur peut inclure une clé de tri pour les messages Pub/Sub à l'aide de la propriété
orderingKeySource. Les options de sa valeur incluent"none"(par défaut),"key"et"partition".La propriété
tasks.maxcontrôle le niveau de parallélisme du connecteur. L'augmentation detasks.maxpeut améliorer le débit, mais le parallélisme réel est limité par le nombre de partitions dans les sujets Kafka.
Propriétés d'un connecteur de récepteur Pub/Sub
Lorsque vous créez un connecteur de récepteur Pub/Sub, vous devez spécifier les propriétés suivantes.
Nom du connecteur
Nom unique du connecteur au sein du cluster Connect. Pour obtenir des instructions sur la dénomination des ressources, consultez Consignes de dénomination des ressources Managed Service pour Apache Kafka.
Type de plug-in de connecteur
Sélectionnez Récepteur Pub/Sub comme type de plug-in de connecteur. Cela détermine la direction du flux de données, qui va de Kafka vers Pub/Sub, ainsi que l'implémentation de connecteur spécifique utilisée. Si vous n'utilisez pas l'interface utilisateur pour configurer le connecteur, vous devez également spécifier la classe du connecteur.
Sujets Kafka
Sujets Kafka à partir desquels le connecteur consomme des messages.
Vous pouvez spécifier un ou plusieurs sujets, ou utiliser une expression régulière pour faire correspondre plusieurs sujets. Par exemple, topic.* pour faire correspondre tous les sujets commençant par "topic". Ces sujets doivent exister dans le cluster Managed Service pour Apache Kafka associé à votre cluster Connect.
Sujet Pub/Sub
Sujet Pub/Sub existant dans lequel le connecteur publie des messages. Assurez-vous que le compte de service du cluster Connect dispose du rôle roles/pubsub.publisher sur le projet du sujet, comme décrit dans Avant de commencer.
Configuration
Cette section vous permet de spécifier des propriétés de configuration supplémentaires spécifiques au connecteur.
Étant donné que les données des sujets Kafka peuvent être dans différents formats (Avro, JSON ou octets bruts), une partie essentielle de la configuration consiste à spécifier des convertisseurs. Les convertisseurs traduisent les données du format utilisé dans vos sujets Kafka au format interne standardisé de Kafka Connect. Le connecteur de récepteur Pub/Sub prend ensuite ces données internes et les transforme au format requis par Pub/Sub avant de les écrire.
Pour en savoir plus sur le rôle des convertisseurs dans Kafka Connect, les types de convertisseurs compatibles et les options de configuration courantes, consultez Convertisseurs.
Voici quelques configurations spécifiques au connecteur de récepteur Pub/Sub :
cps.project: spécifie l'ID du projet Google Cloud qui contient le sujet Pub/Sub.cps.topic: spécifie le sujet Pub/Sub dans lequel les données sont publiées.cps.endpoint: spécifie le point de terminaison Pub/Sub à utiliser.
Pour obtenir la liste des propriétés de configuration disponibles spécifiques à ce connecteur, consultez Configurations du connecteur de récepteur Pub/Sub.
Créer un connecteur de récepteur Pub/Sub
Avant de créer un connecteur, consultez la documentation sur les propriétés d'un connecteur de récepteur Pub/Sub.
Console
Dans la console Google Cloud , accédez à la page Connecter des clusters.
Cliquez sur le cluster Connect pour lequel vous souhaitez créer le connecteur.
La page Détails de la connexion du cluster s'affiche.
Cliquez sur Créer un connecteur.
La page Créer un connecteur Kafka s'affiche.
Pour le nom du connecteur, saisissez une chaîne.
Pour obtenir des instructions sur la façon de nommer un connecteur, consultez les consignes de dénomination des ressources Managed Service pour Apache Kafka.
Pour Plug-in de connecteur, sélectionnez Récepteur Pub/Sub.
Sous Sujets, sélectionnez Sélectionner une liste de sujets Kafka ou Utiliser une expression régulière de sujet. Ensuite, sélectionnez ou saisissez le ou les sujets Kafka à partir desquels ce connecteur consomme des messages. Ces sujets se trouvent dans votre cluster Kafka associé.
Pour Sélectionner un sujet Cloud Pub/Sub, choisissez le sujet Pub/Sub dans lequel ce connecteur publie des messages. Le sujet s'affiche au format de nom de ressource complet :
projects/{project}/topics/{topic}.(Facultatif) Configurez des paramètres supplémentaires dans la section Configurations. C'est là que vous spécifiez des propriétés telles que
tasks.max,key.converteretvalue.converter, comme indiqué dans la section précédente.Sélectionnez la règle de redémarrage des tâches. Pour en savoir plus, consultez Règle de redémarrage des tâches.
Cliquez sur Créer.
gcloud
Exécutez la commande gcloud
managed-kafka connectors create :
gcloud managed-kafka connectors create CONNECTOR_ID \
--connect-cluster=CONNECT_CLUSTER_ID \
--location=LOCATION \
--config-file=CONFIG_FILE
Remplacez les éléments suivants :
CONNECTOR_ID: ID ou nom du connecteur.CONNECT_CLUSTER_ID: ID du cluster Connect dans lequel le connecteur est créé.LOCATION: emplacement du cluster Connect.CONFIG_FILE: chemin d'accès à un fichier de configuration YAML ou JSON local.
Voici un exemple de fichier de configuration pour le connecteur de récepteur Pub/Sub :
connector.class: "com.google.pubsub.kafka.sink.CloudPubSubSinkConnector"
name: "CPS_SINK_CONNECTOR_ID"
tasks.max: "1"
topics: "GMK_TOPIC_ID"
value.converter: "org.apache.kafka.connect.storage.StringConverter"
key.converter: "org.apache.kafka.connect.storage.StringConverter"
cps.topic: "CPS_TOPIC_ID"
cps.project: "GCP_PROJECT_ID"
Remplacez les éléments suivants :
CPS_SINK_CONNECTOR_ID : ID ou nom du connecteur de récepteur Pub/Sub. Pour obtenir des instructions sur la façon de nommer un connecteur, consultez les consignes de dénomination des ressources Managed Service pour Apache Kafka. Le nom d'un connecteur est immuable.
GMK_TOPIC_ID : ID du sujet Managed Service pour Apache Kafka à partir duquel les données sont lues par le connecteur de récepteur Pub/Sub.
CPS_TOPIC_ID : ID du sujet Pub/Sub dans lequel les données sont publiées.
GCP_PROJECT_ID : ID du projet Google Cloudoù réside votre sujet Pub/Sub.
Terraform
Vous pouvez utiliser une ressource Terraform pour créer un connecteur.
Pour savoir comment appliquer ou supprimer une configuration Terraform, consultez Commandes Terraform de base.
Go
Avant d'essayer cet exemple, suivez les instructions de configuration pour Go dans Installer les bibliothèques clientes. Pour en savoir plus, consultez la documentation de référence de l'API Go Managed Service pour Apache Kafka.
Pour vous authentifier auprès de Managed Service pour Apache Kafka, configurez les Identifiants par défaut de l'application(ADC). Pour en savoir plus, consultez Configurer les ADC pour un environnement de développement local.
Java
Avant d'essayer cet exemple, suivez les instructions de configuration pour Java dans Installer les bibliothèques clientes. Pour en savoir plus, consultez la documentation de référence de l'API Java Managed Service pour Apache Kafka.
Pour vous authentifier auprès de Managed Service pour Apache Kafka, configurez les Identifiants par défaut de l'application. Pour en savoir plus, consultez Configurer les ADC pour un environnement de développement local.
Python
Avant d'essayer cet exemple, suivez les instructions de configuration de Python dans Installer les bibliothèques clientes. Pour en savoir plus, consultez la documentation de référence de l'API Python Managed Service pour Apache Kafka.
Pour vous authentifier auprès de Managed Service pour Apache Kafka, configurez les Identifiants par défaut de l'application. Pour en savoir plus, consultez Configurer les ADC pour un environnement de développement local.
Après avoir créé un connecteur, vous pouvez le modifier, le supprimer, le mettre en veille, l'arrêter ou le redémarrer.