Si vous utilisez Pub/Sub pour publier des messages qui représentent une grande quantité de données, vous pouvez utiliser gRPC pour compresser vos données afin de réduire les coûts de mise en réseau avant que votre client éditeur n'envoie la requête de publication. La compression Pub/Sub pour gRPC utilise l'algorithme Gzip.
Ce document fournit des informations sur la compression des messages publiés dans un sujet.
À propos de la compression des messages
Le taux de compression pour l'utilisation de la fonctionnalité de compression côté client gRPC est différent pour chaque client éditeur et dépend des facteurs suivants :
Quantité de données : Le taux de compression s'améliore lorsque la taille de la charge utile passe de quelques centaines d'octets à plusieurs kilo-octets de données. Les paramètres de traitement par lot d'une requête de publication déterminent la quantité de données incluse dans chaque requête de publication. Pour obtenir des résultats optimaux, nous vous recommandons d'activer les paramètres de traitement par lot conjointement avec la compression gRPC.
Type de données. Les données textuelles telles que JSON ou XML sont plus compressibles que les données binaires telles que les images.
Si votre client de publication est sur Google Cloud, vous pouvez utiliser la métrique Octets envoyés (instance/network/sent_bytes_count) pour mesurer le débit de publication en octets. Si votre client éditeur se trouve sur une autre application, vous devez utiliser les outils spécifiques au client pour effectuer la mesure.
L'exemple de code de cette section montre un extrait de code de bibliothèque cliente Java qui inclut également la compression gRPC.
Avant de commencer
Avant de configurer le workflow de publication, assurez-vous d'avoir effectué les tâches suivantes :
- En savoir plus sur les sujets et le workflow de publication
- Créez un sujet.
Rôles requis
Pour obtenir les autorisations nécessaires pour compresser des messages, 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 devez disposer d'autorisations supplémentaires pour créer ou mettre à jour des sujets et des abonnements.
Compresser un message
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 en langage C++.
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 de l'API Java Pub/Sub.
Étapes suivantes
Pour savoir comment configurer les options de publication avancées, consultez les ressources suivantes :