Pour publier un message avec Pub/Sub, une application de publication crée et envoie des messages à un sujet.
Ce document présente le workflow de publication, y compris le concept de sujets et de messages.
À propos des thèmes
Un sujet Pub/Sub est une ressource nommée qui représente un flux de messages. Lorsqu'un éditeur envoie un message, il cible un sujet spécifique. Le service Pub/Sub utilise ce nom de sujet pour acheminer le message vers tous les abonnements associés au sujet. Si un abonnement compte plusieurs abonnés, un seul d'entre eux reçoit le message.
Les éditeurs n'ont pas besoin de connaître le nombre d'abonnés. Ils se concentrent sur le sujet, ce qui garantit la séparation des tâches entre l'envoi et la réception des messages.
Pub/Sub accepte deux types de sujets : un sujet standard et un sujet d'importation.
Propriétés d'un sujet
Lorsque vous créez ou mettez à jour un sujet, vous pouvez spécifier ses propriétés.
Pour en savoir plus sur les propriétés d'un sujet, consultez Propriétés d'un sujet.
À propos de l'importation de sujets
Un sujet d'importation permet à Pub/Sub d'ingérer des données en flux continu provenant d'une autre source et d'agir en tant qu'application de publication qui envoie les données au sujet. Vous pouvez activer l'ingestion sur un sujet à l'aide de la console, de la Google Cloud CLI, d'appels REST ou des bibliothèques clientes. Dans le cadre de la gestion du sujet d'importation,Cloud de Confiance by S3NS assure la surveillance et le scaling du pipeline d'ingestion.
Sans sujet d'importation, la diffusion de données en flux continu dans Pub/Sub à partir d'une source de données nécessite un service supplémentaire. Ce service supplémentaire extrait les données de la source d'origine et les publie dans Pub/Sub. Le service supplémentaire peut être un moteur de streaming tel qu'Apache Spark ou un service écrit sur mesure. Vous devez également configurer, déployer, exécuter, faire évoluer et surveiller ce service.
Voici une liste d'informations importantes concernant les thèmes d'importation :
Comme pour un sujet standard, vous pouvez toujours publier manuellement dans un sujet d'importation.
Vous ne pouvez associer qu'une seule source d'ingestion à un sujet d'importation.
Nous vous recommandons d'importer des sujets pour les données de flux. Si vous envisagez d'ingérer des données par lot dans BigQuery au lieu d'ingérer des données en streaming, vous pouvez essayer le service de transfert de données BigQuery. Si vous souhaitez ingérer des données dans Cloud Storage, le service de transfert de stockage (STS) est une bonne option.
Pub/Sub accepte les sources suivantes pour les sujets d'importation :
Réplication des données dans un sujet
Un sujet Pub/Sub utilise trois zones pour stocker les données. Le service est compatible avec la réplication synchrone dans au moins deux zones et la réplication au mieux dans une troisième zone supplémentaire. La réplication Pub/Sub s'effectue dans une seule région.
À propos des messages
Un message Pub/Sub correspond aux données qui transitent par le service.
Un message est constitué de champs contenant des données du message et des métadonnées. Un message doit contenir des données de message ou au moins un attribut.
Les données du message : il s'agit du contenu principal du message, qui peut être n'importe quel texte ou donnée binaire. Il représente les informations réelles que vous souhaitez communiquer entre les éditeurs et les abonnés. Si vous utilisez directement l'API REST, les données du message doivent être encodées en base64. Consultez l'exemple dans l'onglet REST de la section Publier des messages.
Une clé de tri : il s'agit d'un identifiant facultatif qui représente l'entité pour laquelle les messages doivent être triés. Les messages ayant la même clé de tri doivent être distribués à un abonné dans l'ordre dans lequel ils ont été publiés. Une clé de tri n'est requise que si vous souhaitez que vos messages soient distribués dans l'ordre. Pour en savoir plus sur les clés de tri, consultez Classer les messages.
Attributs : il s'agit de paires clé/valeur facultatives qui fournissent un contexte et des informations supplémentaires sur le message. Ils peuvent être utilisés pour acheminer, filtrer ou enrichir le contenu du message. Par exemple, vous pouvez ajouter des attributs tels que des codes temporels ou des ID de transaction. Pour en savoir plus sur les attributs utilisés pour publier des messages, consultez Utiliser des attributs pour publier un message.
Le service Pub/Sub ajoute les champs suivants au message :
- ID de message unique pour le sujet
- Horodatage correspondant au moment où le service Pub/Sub reçoit le message
Lorsque vous publiez des messages à l'aide des bibliothèques clientes Pub/Sub, fournissez le message data sous la forme d'un tableau d'octets, tel qu'un Buffer Node.js. Si vos données sont une chaîne, vous devez d'abord les encoder en octets, par exemple en utilisant l'encodage UTF-8, avant de les transmettre à la bibliothèque cliente.
Si vous utilisez directement l'API REST, les données du message doivent être encodées en base64 et envoyées sous forme de chaîne.
L'exemple suivant montre une représentation JSON d'un message envoyé par un client :
{
"data": "VGhpcyBpcyB0aGUgY29yZSBtZXNzYWdlIGNvbnRlbnQu",
"attributes": {
"category": "notification",
"user_id": "12345",
"priority": "medium"
},
"orderingKey": "12345"
}
Lorsqu'un abonné reçoit le message, il inclut les valeurs de messageId et publishTime, ajoutées par le service Pub/Sub :
{
"data": "VGhpcyBpcyB0aGUgY29yZSBtZXNzYWdlIGNvbnRlbnQu",
"attributes": {
"category": "notification",
"user_id": "12345",
"priority": "medium"
},
"messageId": "19443130675731448",
"publishTime": "2026-05-04T23:15:19.863Z",
"orderingKey": "12345"
}
}
Workflow de publication de messages
Pour publier un message avec Pub/Sub, une application d'éditeur crée et envoie des messages dans un sujet.
- Vous créez un message contenant vos données.
- Sélectionnez les attributs de publication facultatifs.
- Envoyez une requête au serveur Pub/Sub pour publier le message dans un sujet spécifié.
Le service Pub/Sub reçoit le message et le traite comme suit :
Le message est stocké pour distribution.
Le message est répliqué dans plusieurs zones pour assurer sa durabilité et sa haute disponibilité.
Pub/Sub identifie les abonnés dont les abonnements correspondent au sujet du message et leur envoie une copie du message.
Pub/Sub propose une distribution des messages au moins une fois et un classement au mieux pour les abonnés existants.
Pour en savoir plus sur le système Pub/Sub, consultez Présentation du service Pub/Sub.
Pour en savoir plus sur le fonctionnement de Pub/Sub, consultez Présentation de l'architecture de Pub/Sub.