Présentation de la publication de messages

Pour publier un message avec Pub/Sub, une application d'éditeur crée et envoie des messages dans un sujet.

Ce document présente le workflow de publication, y compris le concept de sujets et de messages.

À propos des sujets

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 savoir combien d'abonnés existent. Ils se concentrent sur le sujet, ce qui garantit la séparation des préoccupations entre l'envoi et la réception des messages.

Pub/Sub est compatible avec 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 des sujets, consultez la page Propriétés d'un sujet.

À propos des sujets d'importation

Un sujet d'importation permet à Pub/Sub d'ingérer des données de streaming à partir d'une autre source et d'agir en tant qu'application d'éditeur qui envoie les données au sujet. Vous pouvez activer l'ingestion sur un sujet à l'aide de la console, de 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 fournit la surveillance et le scaling du pipeline d'ingestion.

Sans sujet d'importation, le streaming de données 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 personnalisé. Vous devez également configurer, déployer, exécuter, mettre à l'échelle et surveiller ce service.

Voici une liste d'informations importantes concernant les sujets 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 recommandons d'utiliser des sujets d'importation pour les données de streaming. Si vous envisagez d'ingérer des données par lot dans BigQuery au lieu de données de 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 est compatible avec 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 dans une troisième zone, dans la mesure du possible. La réplication Pub/Sub n'a lieu que 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.

  • 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 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.

  • 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 un ordre spécifique. Pour en savoir plus sur les clés de tri, consultez la page Trier des messages.

  • Attributs : il s'agit de paires clé/valeur facultatives qui fournissent un contexte et des informations supplémentaires sur le message. Elles peuvent être utilisées 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 lors de la publication de messages, consultez la page 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 les data du message sous forme de 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 à l'aide de 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 des messages

Pour publier un message avec Pub/Sub, une application d'éditeur crée et envoie des messages dans un sujet.

  1. Vous créez un message contenant vos données.
  2. Sélectionnez les attributs de publication facultatifs.
  3. Vous envoyez une requête au serveur Pub/Sub pour publier le message dans un sujet spécifié.
  4. Le service Pub/Sub reçoit le message et le traite comme suit :

    • Le message est stocké pour être distribué.

    • 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 en distribue une copie à chacun d'eux.

Pub/Sub offre aux abonnés existants la distribution de chaque message au moins une fois ainsi que l'ordonnancement des messages, dans la mesure du possible.

Pour en savoir plus sur le système Pub/Sub, consultez la page Présentation du service Pub/Sub.

Pour en savoir plus sur le fonctionnement de Pub/Sub, consultez la page Présentation architecturale de Pub/Sub.

Étape suivante

Apache Kafka® est une marque déposée d'Apache Software Foundation ou de ses filiales aux États-Unis et/ou dans d'autres pays.