Ce document vous aide à choisir le type d'abonnement Pub/Sub adapté à vos besoins commerciaux.
Pub/Sub propose les types d'abonnements suivants :
Les abonnements pull utilisent un client abonné pour demander des messages au serveur Pub/Sub.
Les abonnements push utilisent le serveur Pub/Sub pour envoyer des requêtes à votre application d'abonné afin de distribuer des messages.
L'option Exporter les abonnements permet d'exporter vos messages directement vers une ressource Google Cloud. Voici quelques exemples d'abonnements :
Les abonnements BigQuery exportent les données vers une table BigQuery.
Les abonnements Cloud Storage exportent les données vers un bucket Cloud Storage.
Tableau comparatif des abonnements Pub/Sub
Consultez le tableau suivant qui vous aidera à choisir le système de distribution approprié pour votre application :
| Fonctionnalités compatibles avec les abonnements Pub/Sub | ||
|---|---|---|
| Cas d'utilisation | Abonnement pull |
|
| Abonnement push |
|
|
| Exporter un abonnement |
|
|
| Points de terminaison | Abonnement pull | Tout appareil connecté à Internet et disposant d'identifiants autorisés peut appeler l'API Pub/Sub. |
| Abonnement push |
Un serveur HTTPS disposant d'un certificat non autosigné accessible sur le Web public. Le point de terminaison de réception peut être dissocié de l'abonnement Pub/Sub. Ainsi, les messages provenant de plusieurs abonnements sont envoyés à un seul point de terminaison. |
|
| Exporter un abonnement | L'abonnement écrit dans une ressource Google Cloud , telle qu'une table BigQuery ou un bucket Cloud Storage. | |
| Équilibrage de charge | Abonnement pull | Plusieurs abonnés peuvent effectuer des appels pull au même abonnement. Chaque abonné reçoit un sous-ensemble de messages. |
| Abonnement push |
Les points de terminaison push peuvent être des équilibreurs de charge. |
|
| Exporter un abonnement |
Le service Pub/Sub équilibre automatiquement la charge. |
|
| Configuration | Abonnement pull |
Aucune configuration n'est requise. |
| Abonnement push |
|
|
| Exporter un abonnement | La ressource Google Cloud vers laquelle l'abonnement exporte les données doit exister et être configurée avec les autorisations appropriées. | |
| Contrôle de flux | Abonnement pull | Le client abonné contrôle la fréquence de distribution. L'abonné peut modifier de façon dynamique le délai de confirmation, permettant ainsi de prolonger de manière arbitraire le traitement des messages. |
| Abonnement push | Le serveur Pub/Sub applique un contrôle de flux automatiquement. Les clients n'ont pas besoin de gérer le flux des messages. Toutefois, il est possible d'indiquer que le client ne peut pas gérer la charge actuelle de messages en renvoyant une erreur HTTP. | |
| Exporter un abonnement | Pub/Sub implémente automatiquement le contrôle de flux pour optimiser l'écriture des messages dans la ressource de destination Google Cloud. | |
| Efficacité et débit | Abonnement pull | Atteint un débit élevé avec un processeur et une bande passante peu exploités, permettant ainsi une distribution et des accusés de réception groupés, ainsi qu'une consommation massivement parallèle. Peut être inefficace si une scrutation fréquente est utilisée pour réduire le délai de distribution des messages. |
| Abonnement push | Distribue un message par requête et limite le nombre maximal de messages en attente. | |
| Exporter un abonnement | Pub/Sub gère l'évolutivité de manière dynamique. | |
Quand utiliser un abonnement à l'exportation ?
Sans abonnement à l'exportation, vous avez besoin d'un abonnement pull ou push et d'un abonné (tel que Dataflow) pour lire les messages et les écrire dans une ressource Google Cloud . Les frais généraux liés à l'exécution d'un job Dataflow ne sont pas nécessaires lorsque les messages ne nécessitent pas de traitement supplémentaire avant d'être stockés.
Les abonnements à l'exportation présentent les avantages suivants :
Déploiement simple : Vous pouvez configurer un abonnement à l'exportation via un workflow unique dans la console, la CLI Google Cloud , la bibliothèque cliente ou l'API Pub/Sub.
Coûts réduits : Réduit les coûts et la latence supplémentaires des pipelines Pub/Sub similaires qui incluent des jobs Dataflow. Cette optimisation des coûts est utile pour les systèmes de messagerie qui ne nécessitent pas de traitement supplémentaire avant le stockage.
Surveillance minimale : Les abonnements à l'exportation font partie du service Pub/Sub multitenant et ne nécessitent pas l'exécution de tâches de surveillance distinctes.
Flexibilité. Un abonnement BigQuery peut utiliser le schéma du sujet auquel il est associé, ce qui n'est pas possible avec le modèle Dataflow de base pour écrire des données de Pub/Sub dans BigQuery. De même, un abonnement Cloud Storage propose des options de regroupement de fichiers configurables en fonction de la taille des fichiers et du temps écoulé, qui ne sont pas configurables dans le modèle Dataflow de base pour l'écriture de Pub/Sub vers Cloud Storage.
Toutefois, un pipeline Dataflow est toujours recommandé pour les systèmes Pub/Sub où une transformation des données est nécessaire avant qu'elles ne soient stockées dans une ressourceGoogle Cloud , telle qu'une table BigQuery ou un bucket Cloud Storage.
Pour savoir comment transférer des données par flux de Pub/Sub vers BigQuery avec transformation à l'aide de Dataflow, consultez Transférer des données par flux de Pub/Sub vers BigQuery.
Pour savoir comment diffuser des données de Pub/Sub vers Cloud Storage avec transformation à l'aide de Dataflow, consultez Diffuser des messages depuis Pub/Sub à l'aide de Dataflow.
Étapes suivantes
Comprendre le workflow pour chaque type d'abonnement :