Pour recevoir des messages publiés dans un sujet, vous devez créer un abonnement associé à ce sujet. Seuls les messages publiés dans le sujet après la création de l'abonnement sont disponibles pour les clients abonnés. Le client abonné reçoit et traite les messages publiés dans le sujet. Un sujet peut être associé à plusieurs abonnements, mais un abonnement donné ne peut être associé qu'à un seul sujet.
La fonctionnalité de conservation des sujets permet à un abonnement associé à un sujet de revenir en arrière et de relire les messages précédemment publiés. Pour en savoir plus sur cette fonctionnalité, consultez la section Rouvrir et supprimer définitivement des messages.
Workflow d'abonnement
Une fois qu'un message est envoyé à un abonné, celui-ci doit en accuser réception.
Si un message est envoyé pour distribution et qu'un abonné n'en a pas encore accusé réception, il est considéré comme en attente.
Pub/Sub tente à plusieurs reprises de distribuer tout message dont la réception n'a pas encore été confirmée. Cependant, Pub/Sub tente de ne pas distribuer un message en attente à un autre abonné du même abonnement.
L'abonné dispose d'un délai configurable et limité, appelé
ackDeadline, pour accuser réception du message en attente. Une fois la date limite écoulée, le message n'est plus considéré comme étant en attente et Pub/Sub tente de le redistribuer.
Types d'abonnements
Lorsque vous créez un abonnement, vous devez spécifier le type de distribution des messages. 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 Cloud de Confiance by S3NS. 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.
Pour choisir l'abonnement adapté aux besoins de votre entreprise, consultez Choisir un type d'abonnement. Vous pouvez modifier le type de diffusion des messages d'un abonnement à tout moment après sa création.
Propriétés d'abonnement par défaut
Par défaut, Pub/Sub propose une distribution de type "au moins une fois" sans garantie d'ordre pour tous les types d'abonnements. Si les messages ont la même clé de tri et se trouvent dans la même région, vous pouvez également activer le tri des messages. Une fois que vous avez défini la propriété de tri des messages, le service Pub/Sub distribue les messages ayant la même clé de tri dans l'ordre de leur réception par le service.
Pub/Sub est également compatible avec la distribution de type "exactement une fois".
En général, Pub/Sub distribue chaque message une seule fois et dans l'ordre dans lequel il a été publié. Cependant, les messages peuvent parfois être distribués dans le désordre ou plus d'une fois. Pub/Sub peut redistribuer un message même après qu'une demande d'accusé de réception pour le message a été traitée avec succès. Cette nouvelle remise peut être due à des problèmes tels que des redémarrages côté serveur ou des problèmes côté client. Ainsi, bien que cela soit rare, n'importe quel message peut être rediffusé à tout moment.
L'application d'une distribution de type "plusieurs fois" nécessite que votre abonné soit idempotent lors du traitement des messages.
Expiration de l'abonnement
Par défaut, les abonnements expirent après 31 jours d'inactivité de l'abonné ou si aucune modification n'y est apportée. Voici quelques exemples d'activités d'abonné : connexions ouvertes, pulls actifs ou push réussis. Si Pub/Sub détecte une activité d'abonné ou une modification des propriétés de l'abonnement, l'horloge de suppression d'abonnement redémarre. À l'aide des règles d'expiration des abonnements, vous pouvez configurer la durée d'inactivité ou rendre l'abonnement persistant, quelle que soit l'activité. Vous pouvez également supprimer un abonnement manuellement.
Même si vous avez la possibilité de créer des abonnements portant le même nom qu'un abonnement supprimé, sachez que le nouvel abonnement n'aura aucun rapport avec l'ancien, même s'ils ont le même nom. Même si l'abonnement supprimé comportait un grand nombre de messages non confirmés, un nouvel abonnement portant le même nom n'aurait aucun message en attente de distribution au moment de sa création.
Étapes suivantes
Choisissez le type d'abonnement adapté aux besoins de votre entreprise.
Comprendre le workflow pour chaque type d'abonnement :
En savoir plus sur les différentes propriétés des abonnements