Ce document fournit des informations sur l'utilisation du contrôle de flux avec les messages publiés sur un sujet.
À propos du contrôle de flux
Un client éditeur peut tenter de publier des messages plus rapidement que ce que la capacité d'envoi des données au service Pub/Sub de ce client permet. Les clients sont limités par de nombreux facteurs, y compris les suivants :
- Processeur machine, RAM et capacité réseau
- Paramètres réseau, tels que le nombre de requêtes en attente et la bande passante disponible
- Latence de chaque requête de publication, largement déterminée par les connexions réseau entre le service Pub/Sub, le client et Google Cloud
Si le taux de requêtes de publication dépasse ces limites, les requêtes s'accumulent en mémoire jusqu'à ce qu'elles échouent avec une erreur DEADLINE_EXCEEDED
. Cette situation risque de se produire lorsque des dizaines de milliers de messages sont publiés dans une boucle, générant des milliers de requêtes en quelques millisecondes.
Vous pouvez diagnostiquer ce problème en vérifiant les métriques côté serveur dans Monitoring. Vous ne pouvez pas voir les requêtes qui ont échoué avec DEADLINE_EXCEEDED
, mais seulement les requêtes ayant réussi. Le taux de requêtes réussies indique la capacité de débit de vos machines clientes et fournit une référence pour la configuration du contrôle de flux.
Accéder à la page "Surveillance"
Pour limiter les problèmes de débit, configurez votre client éditeur avec un contrôle de flux afin de limiter le taux de requêtes de publication. Vous pouvez configurer le nombre maximal d'octets alloués pour les requêtes en attente et le nombre maximal de messages en attente autorisés. Définissez ces limites en fonction de la capacité de débit de vos machines clientes.
Avant de commencer
Avant de configurer le workflow de publication, assurez-vous d'avoir effectué les tâches suivantes:
- Découvrez les thèmes et le workflow de publication.
- Créez un sujet.
Rôles requis
Pour obtenir les autorisations nécessaires pour utiliser la gestion du débit, 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 la page Gérer l'accès aux projets, aux dossiers et aux organisations.
Vous pouvez également obtenir les autorisations requises via des rôles personnalisés ou d'autres rôles prédéfinis.
Vous avez besoin d'autorisations supplémentaires pour créer ou modifier des sujets et des abonnements.
Utiliser le contrôle de flux avec les messages
Le contrôle de flux d'éditeur est disponible à l'aide des bibliothèques clientes Pub/Sub dans les langages suivants:
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 sur l'API Pub/Sub pour C++.
Go
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 sur l'API Pub/Sub pour Go.
Java
Avant d'essayer cet exemple, suivez les instructions d'installation dans le langage Java 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 sur l'API Pub/Sub pour Java.
Node.js
Avant d'essayer cet exemple, suivez les instructions d'installation dans le langage Node.js 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 sur l'API Pub/Sub pour Node.js.
Node.js
Avant d'essayer cet exemple, suivez les instructions d'installation dans le langage Node.js 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 sur l'API Pub/Sub pour Node.js.
Python
Avant d'essayer cet exemple, suivez les instructions d'installation dans le langage Python 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 sur l'API Pub/Sub pour Python.
Ruby
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 sur l'API Pub/Sub pour Ruby.