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 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 connaître le nombre d'abonnés. Ils se concentrent sur le sujet, en veillant à séparer les préoccupations entre l'envoi et la réception des messages.
Pub/Sub prend en charge 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 thème, consultez la section 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 à l'aide de la console, Google Cloud CLI, REST ou les bibliothèques clientes. Dans le cadre de la gestion du sujet d'importation, Google Cloud assure la surveillance et le scaling du pipeline d'ingestion.
Sans sujet d'importation, diffuser des données dans Pub/Sub à partir d'un nécessite un service supplémentaire. Ce service supplémentaire extrait des données de la source d'origine et les publie sur Pub/Sub. Le service supplémentaire peut être un moteur de streaming tel qu'Apache Spark ou un service écrit sur mesure. Vous devez aussi configurer, déployer, exécuter, faire évoluer pour surveiller ce service.
Vous trouverez ci-dessous une liste d'informations importantes concernant les importations :
Comme pour les sujets standards, vous pouvez toujours publier manuellement importer le sujet.
Vous ne pouvez associer qu'une seule source d'ingestion à un thème d'importation.
Nous vous recommandons d'importer des sujets pour les données en streaming. Si vous envisagez une ingestion de données par lot dans BigQuery au lieu d'un flux l'ingestion de données, vous pouvez essayer Service de transfert de données BigQuery (BQ DTS). Pour ingérer des données dans Cloud Storage, Service de transfert de stockage (STS) est une bonne option.
Pub/Sub accepte les sources suivantes importer des sujets: Amazon Kinesis Data Streams
Réplication de données dans un sujet
Un sujet Pub/Sub utilise trois zones pour stocker des données. Le service prend en charge la réplication synchrone sur au moins deux zones. vers une troisième zone supplémentaire. La réplication Pub/Sub dans une seule région.
À propos des messages
Un message Pub/Sub désigne les 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 n'importe quel texte ou données binaires. Il représente les informations réelles que vous voulez 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'une identifiant qui représente l'entité pour laquelle les messages doivent être ordonnés. Les messages avec la même clé de tri doivent être distribués à un abonné dans l'ordre de leur publication. Une clé de tri n'est obligatoire si vous voulez que vos messages soient distribués de façon ordonnée. Pour en savoir plus sur la commande de clés, consultez la section Message de commande.
Attributs : paires clé-valeur facultatives qui fournissent un contexte et des informations supplémentaires sur le message. Ils peuvent être utilisés pour le routage, le filtrage ou l'enrichissement du contenu des messages. Par exemple, vous pouvez ajouter comme des codes temporels ou des ID de transaction. Pour en savoir plus sur les attributs utilisés dans la publication de messages, voir Utilisez 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"
}
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 des attributs de publication facultatifs.
- Envoyer une requête au serveur Pub/Sub pour publier le message à un sujet spécifique.
Le service Pub/Sub reçoit le message et le traite comme suit:
Le message est stocké en vue de sa distribution.
Le message est répliqué sur plusieurs zones à des fins de durabilité et de haute disponibilité.
Pub/Sub identifie les abonnés dont les abonnements correspondent sujet du message et envoie une copie du message à chacun.
Pub/Sub assure la distribution des messages au moins une fois et permet d'ordonner au mieux les utilisateurs aux 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 la page Présentation de l'architecture de Pub/Sub.