Présentation des messages publiés

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

Ce document présente le workflow de publication, y compris le concept de thèmes 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 comporte 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 assure 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 thème

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 thèmes, consultez Propriétés d'un thème.

À propos des thèmes d'importation

Un sujet d'importation permet à Pub/Sub d'ingérer des données de flux provenant d'une autre source et d'agir en tant qu'application d'édition qui envoie les données au sujet. Vous pouvez activer l'ingestion sur un thème à l'aide de la console, de Google Cloud CLI, des appels REST ou des bibliothèques clientes. Dans le cadre de la gestion du thème d'importation,Trusted Cloud by S3NS assure la surveillance et la mise à l'échelle du pipeline d'ingestion.

Sans sujet d'importation, la diffusion de données en streaming 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. Ce 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, mettre à l'échelle et surveiller ce service.

Vous trouverez ci-dessous une liste d'informations importantes concernant les importations :

  • Comme pour un thème standard, vous pouvez toujours publier manuellement un thème importé.

  • Vous ne pouvez associer qu'une seule source d'ingestion à un thème d'importation.

Nous vous recommandons d'importer des thèmes pour les données de streaming. Si vous envisagez d'ingérer des données par lot dans BigQuery au lieu de les ingérer 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 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 avec la réplication au mieux dans une troisième zone supplémentaire. La réplication Pub/Sub ne s'effectue 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. L'un des éléments suivants doit être spécifié dans un message.

  • Données du message : il s'agit du contenu principal du message, qui peut être du texte ou des données binaires. 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.

  • Clé de tri : identifiant qui représente l'entité pour laquelle les messages doivent être triés. Les messages ayant la même clé de tri doivent être remis à 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 commande, consultez Message de commande.

  • Attributs : il s'agit de paires clé/valeur facultatives qui fournissent des informations et un contexte supplémentaires sur le message. Elles peuvent être utilisées pour acheminer, filtrer ou enrichir le contenu des messages. 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

Voici un exemple de format de message au format JSON :

{
  "data": "This is the core message content.",
  "attributes": {
    "category": "notification",
    "user_id": "12345",
    "priority": "medium"
  },
    "orderingKey": "12345"
}

Lorsque vous publiez des messages à l'aide des bibliothèques clientes Pub/Sub, fournissez le 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 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.

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.

  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 la durabilité et la haute disponibilité.

    • Pub/Sub identifie les abonnés dont les abonnements correspondent au sujet du message et leur envoie une copie.

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 Présentation du service Pub/Sub.

Pour en savoir plus sur le fonctionnement de Pub/Sub, consultez la présentation de l'architecture de Pub/Sub.

Étapes suivantes

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.