Aperçu de l'abonnement

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 d'un sujet permet à un abonnement associé à un sujet de remonter dans le temps et de relire des messages précédemment publiés. Pour en savoir plus sur cette fonctionnalité, consultez la rubrique Rouvrir et supprimer définitivement des messages.

Workflow d'abonnement

  1. Après l'envoi d'un message à un abonné, celui-ci doit en accuser réception.

  2. Si un message est envoyé pour distribution et qu'un abonné n'a pas encore accusé réception, le message est considéré comme en attente.

  3. 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 de message en attente à un autre abonné du même abonnement.

  4. L'abonné dispose d'un temps limité configurable, appelé ackDeadline, pour accuser réception du message en attente. Une fois le délai écoulé, le message n'est plus considéré comme 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 lancer des requêtes auprès de votre application d'abonné afin de distribuer des messages.

  • L'exportation des abonnements vous permet d'exporter vos messages directement vers une ressource Google Cloud. Ces abonnements incluent les suivants:

    • Les abonnements BigQuery exportent des 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 mettre à jour le type de distribution 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 de commande 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 l'ordre des messages. Une fois que vous avez défini la propriété de tri des messages, le service Pub/Sub diffuse les messages avec la même clé de tri et dans l'ordre dans lequel il les reçoit.

Pub/Sub est également compatible avec la distribution de type "exactement une fois".

En général, Pub/Sub distribue chaque message une fois et dans l'ordre dans lequel il a été publié. Toutefois, les messages peuvent parfois être distribués dans le désordre ou plusieurs fois. Pub/Sub peut redistribuer un message même après le renvoi d'une demande de confirmation du message. Cette nouvelle livraison 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 redistribué à tout moment.

L'adaptation 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é des abonnés ou s'ils ne sont pas mis à jour. Les connexions ouvertes, les actions pull actives ou push réussies sont des exemples d'activités d'abonnés. Si Pub/Sub détecte une activité d'abonné ou une mise à jour des propriétés d'abonnement, l'horloge de suppression d'abonnement redémarre. Les règles d'expiration des abonnements vous permettent de configurer la durée d'inactivité ou de rendre l'abonnement persistant, quelle que soit l'activité. Vous pouvez également supprimer un abonnement manuellement.

Bien que vous puissiez créer un abonnement portant le même nom qu'un abonnement supprimé, le nouvel abonnement n'aura aucun lien avec l'ancien. Même si l'abonnement supprimé comportait de nombreux messages non confirmés, un abonnement créé sous le même nom n'aurait aucun message en attente (aucun message en attente de distribution) au moment de sa création.

Étapes suivantes