Cette page explique comment recevoir des messages dans l'ordre.
Pour en savoir plus sur la réception de messages, consultez la présentation des abonnements.
Recevoir des messages dans l'ordre
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 et recevoir les messages dans l'ordre de leur réception par le service Pub/Sub.
Pub/Sub distribue chaque message au moins une fois. Le service Pub/Sub peut donc distribuer plusieurs fois des messages. Lorsque vous recevez des messages dans l'ordre et que le service Pub/Sub redistribue un message avec une clé de tri, Pub/Sub conserve l'ordre en redistribuant aussi les messages suivants avec la même clé de tri. Le service Pub/Sub redistribue ces messages dans l'ordre dans lequel il les a reçus initialement.
Lorsque le service Pub/Sub redistribue un message ayant une clé de tri, le service Pub/Sub redistribue également tous les messages ultérieurs ayant la même clé de tri, y compris les messages confirmés. Confirmez à nouveau ces messages.
Activer le tri des messages
Pour recevoir les messages dans l'ordre, définissez la propriété de tri des messages sur l'abonnement à partir duquel vous recevez les messages. La réception des messages dans l'ordre peut augmenter la latence.
Vous pouvez définir la propriété de tri des messages lorsque vous créez un abonnement à l'aide de Cloud Console, de l'outil de ligne de commande gcloud
ou de l'API Pub/Sub.
Console
Pour créer un abonnement avec la propriété de tri des messages, procédez comme suit :
Dans Cloud Console, accédez à la page Abonnements.
Cliquez sur Créer un abonnement.
Saisissez un ID d'abonnement.
Choisissez un sujet à partir duquel vous souhaitez recevoir des messages.
Dans la section Tri des messages, sélectionnez Trier les messages avec une clé de tri.
Cliquez sur Créer.
gcloud
Pour créer un abonnement avec la propriété de tri des messages, utilisez la commande gcloud pubsub subscriptions create
et l'option --enable-message-ordering
:
gcloud pubsub subscriptions create SUBSCRIPTION_ID \ --enable-message-ordering
Remplacez SUBSCRIPTION_ID par l'ID de l'abonnement.
Si la requête aboutit, la ligne de commande affiche une confirmation :
Created subscription [SUBSCRIPTION_ID].
REST
Pour créer un abonnement avec la propriété de tri des messages, envoyez une requête PUT
comme suit :
PUT https://pubsub.googleapis.com/v1/projects/PROJECT_ID/subscriptions/SUBSCRIPTION_ID Authorization: Bearer $(gcloud auth application-default print-access-token)
Remplacez l'élément suivant :
- PROJECT_ID : ID du projet avec le sujet
- SUBSCRIPTION_ID : ID de l'abonnement
Dans le corps de la requête, spécifiez les éléments suivants :
{ "topic": TOPIC_ID, "enableMessageOrdering": true, }
Remplacez TOPIC_ID par l'ID du sujet à associer à l'abonnement.
Si la requête aboutit, la réponse est l'abonnement au format JSON :
{ "name": projects/PROJECT_ID/subscriptions/SUBSCRIPTION_ID, "topic": projects/PROJECT_ID/topics/TOPIC_ID, "enableMessageOrdering": true, }
C++
Avant d'essayer cet exemple, suivez les instructions d'installation dans le langage C++ qui se trouvent sur la page Démarrage rapide : utiliser des bibliothèques clientes. Pour en savoir plus, consultez la documentation de référence sur l'API Pub/Sub pour C++.
C#
Avant d'essayer cet exemple, suivez les instructions d'installation dans le langage C# qui se trouvent sur la page Démarrage rapide : utiliser des bibliothèques clientes. Pour en savoir plus, consultez la documentation de référence sur l'API Pub/Sub pour C#.
Go
Avant d'essayer cet exemple, suivez les instructions d'installation dans le langage Go qui se trouvent sur la page Démarrage rapide : utiliser des bibliothèques clientes. Pour en savoir plus, consultez la documentation de référence sur l'API Pub/Sub pour Go.
Java
Avant d'essayer cet exemple, suivez les instructions d'installation dans le langage Java qui se trouvent sur la page Démarrage rapide : utiliser des bibliothèques clientes. Pour en savoir plus, consultez la documentation de référence sur l'API Pub/Sub pour Java.
Node.js
Avant d'essayer cet exemple, suivez les instructions d'installation dans le langage Node.js qui se trouvent sur la page Démarrage rapide : utiliser des bibliothèques clientes. Pour en savoir plus, consultez la documentation de référence sur l'API Pub/Sub pour Node.js.
Python
Avant d'essayer cet exemple, suivez les instructions d'installation dans le langage Python qui se trouvent sur la page Démarrage rapide : utiliser des bibliothèques clientes. Pour en savoir plus, consultez la documentation de référence sur l'API Pub/Sub pour Python.
Ruby
Avant d'essayer cet exemple, suivez les instructions d'installation dans le langage Ruby qui se trouvent sur la page Démarrage rapide : utiliser des bibliothèques clientes. Pour en savoir plus, consultez la documentation de référence sur l'API Pub/Sub pour Ruby.
Une fois que la propriété de tri des messages est définie, le service Pub/Sub distribue les messages ayant la même clé de tri dans l'ordre de leur réception par le service. Par exemple, si un éditeur envoie deux messages ayant la même clé de tri, le service Pub/Sub distribue le message le plus ancien en premier.