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 publiés précédemment. Pour en savoir plus sur cette fonctionnalité, consultez la section Rouvrir et supprimer définitivement des messages.
Workflow des abonnements
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'a pas encore accusé réception, le message 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. Toutefois, 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 redistribuer le message.
Types d'abonnements
Lorsque vous créez un abonnement, vous devez spécifier le type de diffusion 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é pour distribuer des messages.
Les abonnements à l'exportation vous permettent 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 des données vers un bucket Cloud Storage.
Pour choisir l'abonnement adapté à vos besoins, consultez la section 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 offre une distribution au moins une fois sans garantie de tri 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 renvoyer un message même après qu'une requête d'acquittement du message a été renvoyée. Cette nouvelle diffusion peut être due à des problèmes tels que des redémarrages côté serveur ou des problèmes côté client. Par conséquent, bien que cela soit rare, n'importe quel message peut être renvoyé à 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 au bout de 31 jours d'inactivité de l'abonné ou s'il n'y a pas de mises à jour de l'abonnement. Des exemples d'activités d'abonnés incluent les connexions ouvertes, les actions pull actives ou les push réussis. Si Pub/Sub détecte une activité d'abonné ou une mise à jour des propriétés de l'abonnement, l'horloge de suppression de l'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 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 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
Choisissez le type d'abonnement adapté à vos besoins.
Découvrez le workflow pour chaque type d'abonnement:
Découvrez les différentes propriétés des abonnements.