Aperçu de l'abonnement

Pour recevoir des messages publiés dans un sujet, il faut créer un abonnement associé. 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

  1. Une fois qu'un message est envoyé à un abonné, celui-ci doit en accuser réception.

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

  3. Pub/Sub tente à plusieurs reprises de distribuer tout message dont la réception n'a pas encore été confirmée. Toutefois, Pub/Sub tente de ne pas distribuer un message en attente à un autre abonné du même abonnement.

  4. 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 redistribuer le message.

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 à votre application d'abonnés afin de distribuer des messages.

  • Les abonnements d'exportation exportent vos messages directement vers une Google Cloud ressource. Ces abonnements incluent les suivants :

    • Les abonnements BigQuery exportent des données vers une table BigQuery.

    • Abonnements Bigtable (aperçu) exportent des données vers une table Bigtable.

    • Les abonnements Cloud Storage exportent des 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 distribution des messages pour 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 sans faute au minimum d'une fois, sans garantie de tri, pour tous les types d'abonnements. Vous pouvez également activer le tri des messages si les messages ont la même clé de tri et se trouvent dans la même région. Vous pouvez 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 principe, Pub/Sub distribue chaque message une seule 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 qu'une requête d'accusé de réception pour le message a été renvoyée avec succès. Cette redistribution 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, tout message peut être redistribué à 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'est apportée à l'abonnement. Les activités de l'abonné incluent les connexions ouvertes, les actions pull actives ou les 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 de 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 un abonnement portant le même nom qu'un abonnement supprimé, sachez que le nouvel abonnement n'aura aucun rapport avec l'ancien. Même si l'abonnement supprimé comportait de nombreux messages non confirmés, un nouvel abonnement créé avec le même nom n'aurait aucun message en attente de distribution au moment de sa création.

Étape suivante