Restez organisé à l'aide des collections
Enregistrez et classez les contenus selon vos préférences.
Pub/Sub est un service de messagerie asynchrone et évolutif qui dissocie les services de production de messages des services qui traitent ces messages.
Pub/Sub permet aux services de communiquer de manière asynchrone, avec des latences généralement de l'ordre de 100 millisecondes.
Pub/Sub est utilisé pour les pipelines d'analyse de flux et d'intégration de données afin de charger et de distribuer des données. Il est également efficace en tant que middleware de messagerie pour l'intégration des services ou comme file d'attente pour charger en parallèle des tâches.
Pub/Sub vous permet de créer des systèmes de producteurs et de consommateurs d'événements, appelés éditeurs et abonnés. Les éditeurs communiquent de manière asynchrone avec les abonnés en diffusant des événements plutôt que par des appels de procédure à distance (RPC) synchrones.
Les éditeurs envoient des événements au service Pub/Sub, sans savoir comment ni quand ces événements seront traités. Pub/Sub fournit ensuite des événements à tous les services qui y réagissent. Dans les systèmes qui communiquent via des RPC, les éditeurs doivent attendre que les abonnés reçoivent les données. L'intégration asynchrone dans Pub/Sub augmente toutefois la flexibilité et la robustesse du système dans son ensemble.
Ingestion d'événements d'interaction utilisateur et d'événements de serveur. Pour utiliser des événements d'interaction utilisateur en provenance d'applications pour utilisateurs finaux, ou bien des événements de serveur provenant de votre système, vous pouvez les transférer vers Pub/Sub. Vous pouvez ensuite utiliser un outil de traitement par flux, tel que Dataflow, qui envoie les événements aux bases de données. BigQuery, Bigtable et Cloud Storage sont des exemples de telles bases de données.
Pub/Sub vous permet de regrouper des événements de nombreux clients simultanément.
Distribution d'événements en temps réel. Les événements, bruts ou traités, peuvent être mis à la disposition de plusieurs applications au sein de votre équipe et de votre organisation pour un traitement en temps réel. Pub/Sub est compatible avec un "bus d'événements d'entreprise" et les modèles de conception d'applications basés sur les événements.
Pub/Sub vous permet d'intégrer de nombreux systèmes qui exportent des événements vers Pub/Sub.
Réplication des données entre des bases de données. Pub/Sub est couramment utilisé pour distribuer les événements de modification à partir de bases de données. Ces événements peuvent être utilisés pour créer une vue de l'état de la base de données et un historique des états dans BigQuery et d'autres systèmes de stockage de données.
Traitement en parallèle et workflows. Vous pouvez distribuer efficacement de nombreuses tâches entre plusieurs nœuds de calcul en utilisant des messages Pub/Sub pour communiquer avec eux. Il peut s'agir, par exemple, de compresser des fichiers texte, d'envoyer des notifications par e-mail, d'évaluer des modèles d'IA et de reformater des images.
Bus d'événement d'entreprise. Vous pouvez créer un bus de partage de données en temps réel à l'échelle de l'entreprise, en répartissant les événements commerciaux, les mises à jour de base de données et les événements d'analyse dans votre organisation.
Diffusion de données en streaming depuis des applications, des services ou des appareils IoT.
Par exemple, une application SaaS peut publier un flux d'événements en temps réel. Un capteur résidentiel peut également diffuser des données vers Pub/Sub pour les utiliser dans d'autres Google Cloud produits via un pipeline de traitement des données.
Actualisation des caches distribués. Par exemple, une application peut publier des événements d'invalidation pour mettre à jour les ID des objets modifiés.
Équilibrage de charge pour plus de fiabilité. Par exemple, les instances d'un service peuvent être déployées sur Compute Engine dans plusieurs zones, mais s'abonner à un sujet commun. Lorsque le service échoue dans une zone, les autres utilisateurs peuvent récupérer automatiquement la charge.
Comparer Pub/Sub à d'autres technologies de messagerie
Pub/Sub combine l'évolutivité horizontale d'Apache Kafka et de Pulsar avec les fonctionnalités du middleware de messagerie, comme Apache ActiveMQ et RabbitMQ. Les files d'attente de messages non distribués et le filtrage sont des exemples de telles fonctionnalités.
Une autre fonctionnalité que Pub/Sub adopte à partir du middleware de messagerie est le parallélisme par message, plutôt que la messagerie basée sur une partition.
Pub/Sub "loue" des messages individuels aux clients abonnés, puis vérifie si un message donné a bien été traité.
En revanche, d'autres systèmes de messagerie horizontalement évolutifs utilisent des partitions pour le scaling horizontal. Cela oblige les abonnés à traiter les messages dans chaque partition dans l'ordre et limite le nombre de clients simultanés au nombre de partitions. Le traitement par message maximise le parallélisme des applications d'abonnés et permet de garantir l'indépendance de l'éditeur et de l'abonné.
Comparer la communication de service à service et de service à client
Pub/Sub est destiné à la communication de service à service plutôt qu'à la communication avec des utilisateurs finaux ou des clients IoT. D'autres modèles sont mieux adaptés aux autres produits :
Appels de service asynchrones Utilisez Cloud Tasks.
Vous pouvez utiliser une combinaison de ces services pour créer des clients -> services -> modèles de base de données. Par exemple, consultez le tutoriel Diffuser des messages Pub/Sub via WebSockets.
Intégrations
Pub/Sub offre de nombreuses intégrations à d'autres Google Cloud produits pour créer un système de messagerie complet:
Traitement des flux et intégration des données Compatible avec Dataflow, y compris les modèles Dataflow et SQL, qui permettent le traitement et l'intégration des données dans BigQuery et des lacs de données sur Cloud Storage. Les modèles Dataflow permettant de déplacer des données de Pub/Sub vers Cloud Storage, BigQuery et d'autres produits sont disponibles dans les interfaces utilisateur de Pub/Sub et Dataflow dans la consoleGoogle Cloud . L'intégration avec Apache Spark, en particulier lorsqu'elle est gérée avec Dataproc, est également disponible. La composition visuelle des pipelines d'intégration et de traitement exécutés sur Spark et Dataproc peut être réalisée avec Data Fusion.
Surveillance, alertes et journalisation Compatible avec les produits Monitoring et Logging.
Authentification et IAM Pub/Sub s'appuie sur une authentification OAuth standard utilisée par d'autres Google Cloud produits et est compatible avec IAM précis, ce qui permet un contrôle d'accès pour des ressources individuelles.
Déclencheurs, notifications et webhooks Pub/Sub propose la distribution en mode push des messages sous forme de requêtes HTTP POST aux webhooks. Vous pouvez mettre en œuvre l'automatisation des workflows à l'aide de Cloud Functions ou d'autres produits sans serveur.
Orchestration Pub/Sub peut être intégré de manière déclarative aux workflows sans serveur en plusieurs étapes. Le big data et l'orchestration analytique sont souvent effectués via Cloud Composer, qui est compatible avec les déclencheurs Pub/Sub.
Vous pouvez également intégrer Pub/Sub à l'intégration d'applications (aperçu), une solution iPaaS (Integration Platform as a Service). Application Integration fournit un déclencheur Pub/Sub pour déclencher ou démarrer des intégrations.
Integration Connectors(Preview)
Ces connecteurs vous permettent de vous connecter à diverses sources de données.
Grâce aux connecteurs, les services Google Cloud et les applications d'entreprise tierces sont exposés à vos intégrations via une interface standard transparente. Pour Pub/Sub, vous pouvez créer une connexion Pub/Sub à utiliser dans vos intégrations.
Sauf indication contraire, le contenu de cette page est régi par une licence Creative Commons Attribution 4.0, et les échantillons de code sont régis par une licence Apache 2.0. Pour en savoir plus, consultez les Règles du site Google Developers. Java est une marque déposée d'Oracle et/ou de ses sociétés affiliées.
Dernière mise à jour le 2025/08/17 (UTC).
[[["Facile à comprendre","easyToUnderstand","thumb-up"],["J'ai pu résoudre mon problème","solvedMyProblem","thumb-up"],["Autre","otherUp","thumb-up"]],[["Difficile à comprendre","hardToUnderstand","thumb-down"],["Informations ou exemple de code incorrects","incorrectInformationOrSampleCode","thumb-down"],["Il n'y a pas l'information/les exemples dont j'ai besoin","missingTheInformationSamplesINeed","thumb-down"],["Problème de traduction","translationIssue","thumb-down"],["Autre","otherDown","thumb-down"]],["Dernière mise à jour le 2025/08/17 (UTC)."],[],[],null,["# What is Pub/Sub?\n\n| **Key Point:** Understand what is Pub/Sub, why do businesses require Pub/Sub, and the advantages of Pub/Sub compared to similar technologies. Also, learn about core Pub/Sub concepts that include the terms topic, publisher, and subscriber.\n\nPub/Sub is an asynchronous and scalable messaging service that decouples\nservices producing messages from services processing those messages.\n\nPub/Sub allows services to communicate asynchronously, with\nlatencies typically on the order of 100 milliseconds.\n\nPub/Sub is used for streaming analytics and data integration\npipelines to load and distribute data. It's equally effective as a\nmessaging-oriented middleware for service integration or as a queue to parallelize tasks.\n\nPub/Sub lets you create systems of event producers and consumers,\ncalled **publishers** and **subscribers**. Publishers communicate with\nsubscribers asynchronously by broadcasting events, rather than by\nsynchronous remote procedure calls (RPCs).\n\nPublishers send events to the Pub/Sub service, without regard to\nhow or when these events are to be processed. Pub/Sub then\ndelivers events to all the services that react to them. In systems communicating\nthrough RPCs, publishers must wait for subscribers to receive the data. However,\nthe asynchronous integration in Pub/Sub increases the flexibility\nand robustness of the overall system.\n\nTo get started with Pub/Sub, check out the\n[Quickstart using Google Cloud console](/pubsub/docs/create-topic-console).\nFor a more comprehensive introduction, see\n[Building a Pub/Sub messaging system](/pubsub/docs/quickstart-py-mac).\n\nCommon use cases\n----------------\n\n- **Ingesting user interaction and server events.** To use user interaction events from end-user apps or server events from your system, you might forward them to Pub/Sub. You can then use a stream processing tool, such as Dataflow, which delivers the events to databases. Examples of such databases are BigQuery, Bigtable, and Cloud Storage. Pub/Sub lets you gather events from many clients simultaneously.\n- **Real-time event distribution.** Events, raw or processed, may be made available to multiple applications across your team and organization for real- time processing. Pub/Sub supports an \"enterprise event bus\" and event-driven application design patterns. Pub/Sub lets you integrate with many systems that export events to Pub/Sub.\n- **Replicating data among databases.** Pub/Sub is commonly used to distribute change events from databases. These events can be used to construct a view of the database state and state history in BigQuery and other data storage systems.\n- **Parallel processing and workflows.** You can efficiently distribute many tasks among multiple workers by using Pub/Sub messages to communicate with the workers. Examples of such tasks are compressing text files, sending email notifications, evaluating AI models, and reformatting images.\n- **Enterprise event bus.** You can create an enterprise-wide real-time data sharing bus, distributing business events, database updates, and analytics events across your organization.\n- **Data streaming from applications, services, or IoT devices.** For example, a SaaS application can publish a real-time feed of events. Or, a residential sensor can stream data to Pub/Sub for use in other Google Cloud products through a data-processing pipeline.\n- **Refreshing distributed caches.** For example, an application can publish invalidation events to update the IDs of objects that have changed.\n- **Load balancing for reliability.** For example, instances of a service may be deployed on Compute Engine in multiple zones but subscribe to a common topic. When the service fails in any zone, the others can pick up the load automatically.\n\nComparing Pub/Sub to other messaging technologies\n-------------------------------------------------\n\nPub/Sub combines the horizontal scalability of\n[Apache Kafka](/learn/what-is-apache-kafka) and\n[Pulsar](https://pulsar.apache.org/docs/en/2.4.0/concepts-overview/) with\nfeatures found in messaging middleware such as Apache ActiveMQ and\nRabbitMQ. Examples of such features are dead-letter queues and filtering.\n| **Note:** [Google Cloud Managed Service for Apache Kafka](/managed-service-for-apache-kafka/docs/overview) is available. If you're considering a migration from Kafka to Pub/Sub, consult [this migration guide](/architecture/migrating-from-kafka-to-pubsub).\n\nAnother feature that Pub/Sub adopts from messaging middleware is\n**per-message parallelism**, rather than partition-based messaging.\nPub/Sub \"leases\" individual messages to subscriber clients, then\ntracks whether a given message is successfully processed.\n\nBy contrast, other horizontally scalable messaging systems\nuse partitions for horizontal scaling. This forces subscribers\nto process messages in each partition in order and limits the number of concurrent\nclients to the number of partitions. Per-message processing\nmaximizes the parallelism of subscriber applications, and helps ensure\npublisher and subscriber independence.\n\nCompare Service-to-service and service-to-client communication\n--------------------------------------------------------------\n\nPub/Sub is intended for service-to-service communication rather\nthan communication with end-user or IoT clients. Other patterns are\nbetter supported by other products:\n\n- **Client-server.** To send messages between a mobile or web app and a service, use products that include [Firebase Realtime Database](https://firebase.google.com/docs/database) and [Firebase Cloud Messaging](https://firebase.google.com/docs/cloud-messaging).\n- **Asynchronous service calls.** Use [Cloud Tasks](/tasks/docs/dual-overview).\n\nYou can use a combination of these services to build client -\\\u003e services -\\\u003e database\npatterns. For example, see the tutorial\n[Streaming Pub/Sub messages over WebSockets](/pubsub/docs/streaming-cloud-pub-sub-messages-over-websockets).\n\nIntegrations\n------------\n\nPub/Sub has many integrations with other Google Cloud products to create a fully\nfeatured messaging system:\n\n- **Stream processing and data integration.** Supported by [Dataflow](/dataflow/docs), including Dataflow [templates](/dataflow/docs/concepts/dataflow-templates) and [SQL](/dataflow/docs/samples/join-streaming-data-with-sql), which allow processing and data integration into BigQuery and data lakes on Cloud Storage. Dataflow templates for moving data from Pub/Sub to Cloud Storage, BigQuery, and other products are available in the Pub/Sub and Dataflow UIs in the Google Cloud console. Integration with [Apache Spark](/learn/what-is-apache-spark), particularly when managed with [Dataproc](/dataproc/docs/concepts/overview) is also available. Visual composition of integration and processing pipelines running on Spark + Dataproc can be accomplished with [Data Fusion](/data-fusion/docs/concepts/overview).\n- **Monitoring, Alerting and Logging.** Supported by Monitoring and Logging products.\n- **Authentication and IAM.** Pub/Sub relies on a standard OAuth authentication used by other Google Cloud products and supports granular IAM, enabling access control for individual resources.\n- **APIs.** Pub/Sub uses standard [gRPC and REST service API\n technologies](/pubsub/docs/apis) along with [client libraries](/pubsub/docs/reference/libraries) for several languages.\n- **Triggers, notifications, and webhooks.** Pub/Sub offers push-based delivery of messages as HTTP POST requests to webhooks. You can implement workflow automation using [Cloud Functions](/functions/docs) or other serverless products.\n- **Orchestration.** Pub/Sub can be integrated into multistep serverless [Workflows](/workflows) declaratively. Big data and analytic orchestration often done with [Cloud Composer](/composer/docs), which supports Pub/Sub triggers. You can also integrate Pub/Sub with [Application Integration](/application-integration/docs/overview) ([Preview](/products#product-launch-stages)) which is an Integration-Platform-as-a-Service (iPaaS) solution. Application Integration provides a [Pub/Sub trigger](/application-integration/docs/configuring-pubsub-trigger) to trigger or start integrations.\n- **Integration Connectors.** ([Preview](/products#product-launch-stages)) These [connectors](/integration-connectors/docs/about-connectors) let you connect to various data sources. With connectors, both Google Cloud services and third-party business applications are exposed to your integrations through a transparent, standard interface. For Pub/Sub, you can create a Pub/Sub [connection](/integration-connectors/docs/connectors/cloudpub/sub/configure) for use in your integrations.\n\nNext steps\n----------\n\n- Get started with the Pub/Sub [quickstart](/pubsub/docs/create-topic-console).\n- Read the [basics of the\n Pub/Sub service](/pubsub/docs/pubsub-basics).\n- Learn how to [build a\n Pub/Sub messaging system](/pubsub/docs/quickstart-py-mac).\n- Understand Pub/Sub [pricing](/pubsub/pricing).\n- Understand quotas and limits for [Pub/Sub](/pubsub/quotas).\n- Read the Pub/Sub [release\n notes](/pubsub/docs/release-notes).\n- [Explore data\n engineering with Google Cloud services](https://www.qwiklabs.com/courses/1530?catalog_rank=%7B%22rank%22%3A3%2C%22num_filters%22%3A0%2C%22has_search%22%3Atrue%7D&search_id=10146692) on Qwiklabs."]]