Ce document fournit des informations sur l'utilisation du contrôle de simultanéité avec les messages publiés dans un sujet.
Le contrôle de simultanéité vous permet de remplacer le nombre par défaut de threads d'arrière-plan (E/S) utilisés par la bibliothèque cliente pour publier des messages. Cela permet aux clients éditeurs d'envoyer des messages en parallèle.
Le contrôle de simultanéité est une fonctionnalité disponible dans la bibliothèque cliente Pub/Sub de haut niveau. Vous pouvez également implémenter votre propre contrôle de simultanéité lorsque vous utilisez une bibliothèque de bas niveau.
La compatibilité avec le contrôle de simultanéité dépend du langage de programmation de la bibliothèque cliente. Pour les implémentations de langage prenant en charge les threads parallèles, tels que C++, Go et Java, les bibliothèques clientes font un choix par défaut pour le nombre de threads.
Cette page explique le concept de contrôle de simultanéité et comment configurer cette fonctionnalité pour vos clients éditeurs. Pour configurer vos clients abonnés pour le contrôle de simultanéité, consultez Traiter plus de messages avec le contrôle de simultanéité.
Avant de commencer
Avant de configurer le workflow de publication, assurez-vous d'avoir effectué les tâches suivantes :
- Découvrez les sujets et le workflow de publication.
- Créez un sujet.
Rôles requis
Pour obtenir les autorisations nécessaires pour publier des messages dans un sujet, demandez à votre administrateur de vous accorder le rôle IAM Éditeur Pub/Sub (roles/pubsub.publisher) sur votre sujet.
Pour en savoir plus sur l'attribution de rôles, consultez Gérer l'accès aux projets, aux dossiers et aux organisations.
Vous pouvez également obtenir les autorisations requises avec des rôles personnalisés ou d'autres rôles prédéfinis.
Vous avez besoin d'autorisations supplémentaires pour créer ou mettre à jour des sujets et des abonnements.
Configurations du contrôle de simultanéité
Les valeurs par défaut des variables de contrôle de simultanéité et les noms des variables peuvent varier d'une bibliothèque cliente à l'autre. Par exemple, dans la bibliothèque cliente Java, les méthodes permettant de configurer le contrôle de simultanéité sont setExecutorProvider() et setChannelProvider(). Pour plus d'informations, consultez
la
documentation de référence de l'API.
setExecutorProvider() vous permet de personnaliser le fournisseur d'exécuteur utilisé pour traiter les réponses de publication. Par exemple, vous pouvez remplacer le fournisseur d'exécuteur par un fournisseur qui renvoie un seul exécuteur partagé avec un nombre limité de threads sur plusieurs clients éditeurs. Cette configuration permet de limiter le nombre de threads créés.
setChannelProvider() vous permet de personnaliser le fournisseur de canal utilisé pour ouvrir des connexions à Pub/Sub. En règle générale, vous ne configurez pas cette valeur, sauf si vous souhaitez utiliser le même canal sur plusieurs clients éditeurs. La réutilisation d'un canal sur un trop grand nombre de clients peut entraîner des erreurs
GOAWAYouENHANCE_YOUR_CALM. Si ces erreurs s'affichent dans les journaux de votre application ou dans les journaux Cloud, créez d'autres canaux.
Exemples de code pour le contrôle de simultanéité
C++
Avant d'essayer cet exemple, suivez les instructions d'installation dans le langage C++ qui se trouvent sur la page Démarrage rapide : utiliser des bibliothèques clientes. Pour en savoir plus, consultez la documentation de référence de l'API Pub/Sub pour C++ .
Go
L'exemple suivant utilise la version majeure de la bibliothèque cliente Go Pub/Sub (v2). Si vous utilisez toujours la bibliothèque v1, consultez le guide de migration vers la v2. Pour afficher la liste des exemples de code v1, consultez les exemples de code obsolètes.
Avant d'essayer cet exemple, suivez les instructions d'installation dans le langage Go qui se trouvent sur la page Démarrage rapide : utiliser des bibliothèques clientes. Pour en savoir plus, consultez la documentation de référence de l'API Pub/Sub pour Go.
Java
Avant d'essayer cet exemple, suivez les instructions d'installation dans le langage Java se trouvant sur la page Démarrage rapide : utiliser des bibliothèques clientes. Pour en savoir plus, consultez la documentation de référence de l'API Pub/Sub pour Java .
Ruby
L'exemple suivant utilise la bibliothèque cliente Ruby Pub/Sub v3. Si vous utilisez toujours la bibliothèque v2, consultez le guide de migration vers la v3. Pour afficher la liste des exemples de code Ruby v2, consultez les exemples de code obsolètes.
Avant d'essayer cet exemple, suivez les instructions d'installation dans le langage Ruby qui se trouvent sur la page Démarrage rapide : utiliser des bibliothèques clientes. Pour en savoir plus, consultez la documentation de référence de l'API Pub/Sub pour Ruby.
Étape suivante
Pour limiter les emplacements dans lesquels Pub/Sub stocke les données de message, consultez Limiter les emplacements de ressources Pub/Sub.
Pour en savoir plus sur la réception de messages, consultez Choisir un type d'abonnement.