Mantieni tutto organizzato con le raccolte
Salva e classifica i contenuti in base alle tue preferenze.
Pub/Sub è un servizio di messaggistica asincrono e scalabile che disaccoppia i servizi che producono messaggi dai servizi che li elaborano.
Pub/Sub consente ai servizi di comunicare in modo asincrono, con latenze in genere dell'ordine di 100 millisecondi.
Pub/Sub viene utilizzato per le pipeline di analisi dei flussi di dati e di integrazione dei dati per caricare e distribuire i dati. È altrettanto efficace come middleware orientato alla messaggistica per l'integrazione di servizi o come coda per il parallelismo delle attività.
Pub/Sub ti consente di creare sistemi di produttori e consumer di eventi, chiamati publisher e subscriber. I publisher comunicano con i sottoscrittori in modo asincrono trasmettendo eventi anziché tramite chiamate di procedura remota (RPC) sincrone.
I publisher inviano eventi al servizio Pub/Sub, indipendentemente da come o quando questi vengano elaborati. Pub/Sub poi invia gli eventi a tutti i servizi che reagiscono. Nei sistemi che comunicano tramite RPC, i publisher devono attendere che gli iscritti ricevano i dati. Tuttavia,
l'integrazione asincrona in Pub/Sub aumenta la flessibilità
e la robustezza del sistema complessivo.
Importazione di eventi di interazione con l'utente e del server. Per utilizzare gli eventi di interazione con gli utenti provenienti dalle app degli utenti finali o gli eventi del server del tuo sistema, potresti inoltrarli a Pub/Sub. Puoi quindi utilizzare uno strumento di elaborazione dello stream, come Dataflow, che invia gli eventi ai database. Alcuni esempi di questi database sono
BigQuery, Bigtable e Cloud Storage.
Pub/Sub ti consente di raccogliere eventi da molti client contemporaneamente.
Distribuzione degli eventi in tempo reale. Gli eventi, non elaborati o elaborati, possono essere messi a disposizione di più applicazioni del team e dell'organizzazione per l'elaborazione in tempo reale. Pub/Sub supporta un "bus degli eventi
aziendale" e modelli di progettazione di applicazioni basate su eventi.
Pub/Sub ti consente di integrarti con molti sistemi che esportano gli eventi in Pub/Sub.
Replicazione dei dati tra i database. Pub/Sub viene comunemente utilizzato per distribuire gli eventi di modifica dai database. Questi eventi
possono essere utilizzati per creare una visualizzazione dello stato e della cronologia dello stato del database in
BigQuery e in altri sistemi di archiviazione dei dati.
Elaborazione e flussi di lavoro paralleli. Puoi distribuire in modo efficiente molte attività tra più worker utilizzando i messaggi Pub/Sub per comunicare con i worker. Alcuni esempi di queste attività sono la compressione di file di testo, l'invio di notifiche via email, la valutazione di modelli di IA e la riformattazione di immagini.
Bus di eventi Enterprise. Puoi creare un bus di condivisione dei dati in tempo reale per l'intera azienda, distribuendo eventi aziendali, aggiornamenti del database ed eventi di analisi in tutta l'organizzazione.
Streaming di dati da applicazioni, servizi o dispositivi IoT.
Ad esempio, un'applicazione SaaS può pubblicare un feed in tempo reale di eventi. In alternativa, un sensore residenziale può trasmettere i dati a Pub/Sub per utilizzarli in altri Google Cloud prodotti tramite una pipeline di elaborazione dei dati.
Aggiornamento delle cache distribuite. Ad esempio, un'applicazione può pubblicare eventi di convalida per aggiornare gli ID degli oggetti che sono stati modificati.
Bilanciamento del carico per l'affidabilità. Ad esempio, le istanze di un servizio possono essere implementate su Compute Engine in più zone, ma iscriversi a un argomento comune. Quando il servizio non funziona in una zona, le altre possono riprendere automaticamente il carico.
Confronto tra Pub/Sub e altre tecnologie di messaggistica
Pub/Sub combina la scalabilità orizzontale di
Apache Kafka e
Pulsar con
funzionalità presenti nel middleware di messaggistica come Apache ActiveMQ e
RabbitMQ. Esempi di queste funzionalità sono le code di posta inutilizzata e i filtri.
Un'altra funzionalità adottata da Pub/Sub dal middleware di messaggistica è il parallello per messaggio, anziché la messaggistica basata su partizioni.
Pub/Sub "concede in leasing" singoli messaggi ai client sottoscrittori, quindi monitora se un determinato messaggio viene elaborato correttamente.
Al contrario, altri sistemi di messaggistica scalabili orizzontalmente
utilizzano le partizioni per la scalabilità orizzontale. In questo modo, gli iscritti sono costretti a elaborare i messaggi in ogni partizione in ordine e il numero di client simultanei è limitato al numero di partizioni. L'elaborazione per messaggio
massimizza il parallelismo delle applicazioni degli abbonati e contribuisce a garantire
l'indipendenza di publisher e abbonati.
Confronta la comunicazione tra servizi e tra servizio e cliente
Pub/Sub è progettato per la comunicazione tra servizi anziché per la comunicazione con client IoT o utente finale. Altri pattern sono supportati meglio da altri prodotti:
Pub/Sub offre molte integrazioni con altri Google Cloud prodotti per creare un sistema di messaggistica completo:
Elaborazione dei flussi e integrazione dei dati. Supportato da Dataflow, inclusi i modelli e SQL di Dataflow, che consentono l'elaborazione e l'integrazione dei dati in BigQuery e nei data lake su Cloud Storage. I modelli Dataflow per spostare i dati da Pub/Sub a Cloud Storage, BigQuery e altri prodotti sono disponibili nelle UI di Pub/Sub e Dataflow nella consoleGoogle Cloud . È disponibile anche l'integrazione con Apache Spark, in particolare se gestita con Dataproc. La composizione visiva delle pipeline di integrazione e di elaborazione in esecuzione su Spark + Dataproc può essere eseguita con Data Fusion.
Monitoraggio, avvisi e logging. Supportato dai prodotti Monitoring e Logging.
Autenticazione e IAM. Pub/Sub si basa su un'autenticazione OAuth standard utilizzata da altri Google Cloud prodotti e supporta l'IAM granulare, attivando il controllo degli accessi per le singole risorse.
Trigger, notifiche e webhook. Pub/Sub offre la consegna dei messaggi basata su push come richieste POST HTTP ai webhook. Puoi implementare l'automazione dei flussi di lavoro utilizzando Cloud Functions o altri prodotti serverless.
Orchestrazione. Pub/Sub può essere integrato in flussi di lavoro serverless a più passaggi in modo dichiarativo. L'orchestrazione dei big data e delle analisi viene spesso eseguita con
Cloud Composer, che supporta gli attivatori Pub/Sub.
Puoi anche integrare Pub/Sub con Application Integration (anteprima), una soluzione Integration Platform as a Service (iPaaS). L'integrazione di applicazioni fornisce un
trigger Pub/Sub
per attivare o avviare le integrazioni.
Integration Connectors(anteprima).
Questi connettori ti consentono di connetterti a varie origini dati.
Con i connettori, sia i Google Cloud servizi sia le applicazioni aziendali di terze parti vengono esposti alle tue integrazioni tramite un'interfaccia standard e trasparente. Per Pub/Sub, puoi creare una connessione Pub/Sub da utilizzare nelle tue integrazioni.
[[["Facile da capire","easyToUnderstand","thumb-up"],["Il problema è stato risolto","solvedMyProblem","thumb-up"],["Altra","otherUp","thumb-up"]],[["Difficile da capire","hardToUnderstand","thumb-down"],["Informazioni o codice di esempio errati","incorrectInformationOrSampleCode","thumb-down"],["Mancano le informazioni o gli esempi di cui ho bisogno","missingTheInformationSamplesINeed","thumb-down"],["Problema di traduzione","translationIssue","thumb-down"],["Altra","otherDown","thumb-down"]],["Ultimo aggiornamento 2025-09-04 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."]]