Mantenha tudo organizado com as coleções
Salve e categorize o conteúdo com base nas suas preferências.
O Pub/Sub é um serviço de mensagens assíncrono e escalonável que separa os serviços que produzem mensagens dos serviços que processam essas mensagens.
Com o Pub/Sub, os serviços se comunicam de maneira assíncrona, com
latências normalmente na ordem de 100 milissegundos.
O Pub/Sub é usado para análises de streaming e pipelines de integração
de dados para carregar e distribuir dados. Ele é igualmente eficaz como um
middleware orientado a mensagens para integração de serviços ou como uma fila para carregar tarefas em paralelo.
O Pub/Sub permite criar sistemas de produtores e consumidores de eventos,
chamados de editores e assinantes. Os editores se comunicam com os assinantes de forma assíncrona transmitindo eventos, em vez de realizar chamadas de procedimento remoto (RPCs) síncronas.
Os editores enviam eventos ao serviço do Pub/Sub sem considerar
como ou quando eles vão ser processados. Depois, o Pub/Sub
entrega eventos para todos os serviços que precisam responder a eles. Nos sistemas que se comunicam
por RPCs, os publicadores precisam esperar que os assinantes recebam os dados. No entanto,
a integração assíncrona no Pub/Sub aumenta a flexibilidade
e a robustez do sistema como um todo.
Ingestão de eventos do servidor e interação do usuário. Para usar eventos de interação do usuário provenientes de apps do usuário final ou eventos do servidor do seu sistema, encaminhe-os para o Pub/Sub. Em seguida, use uma ferramenta de processamento de fluxo, como o Dataflow, que envia os eventos para bancos de dados. Exemplos desses bancos de dados são o BigQuery, o Bigtable e o Cloud Storage.
O Pub/Sub permite coletar eventos de muitos clientes
simultaneamente.
Distribuição de eventos em tempo real. Eventos brutos ou processados podem ser disponibilizados para vários aplicativos em toda a sua equipe e organização para processamento em tempo real. O Pub/Sub oferece suporte a um "barramento de eventos
corporativos" e padrões de design de aplicativos orientados a eventos.
O Pub/Sub permite a integração com muitos sistemas que exportam eventos para ele.
Replicação de dados entre bancos de dados. O Pub/Sub
é muito usado para distribuir eventos de alteração de bancos de dados. Esses eventos podem ser usados para criar uma visualização do estado do banco de dados e do histórico de estados no BigQuery e em outros sistemas de armazenamento de dados.
Processamento e fluxos de trabalho paralelos. É possível distribuir muitas tarefas entre vários workers de maneira eficiente usando mensagens do Pub/Sub para se comunicar com eles. Exemplos dessas tarefas são
compactar arquivos de texto, enviar notificações por e-mail, avaliar modelos de IA
e reformatar imagens.
Barramento de eventos empresariais. Crie um barramento de compartilhamento de dados em tempo real para toda a empresa. Com ele, você distribui eventos empresariais e de análise e atualizações de bancos de dados por toda a organização.
Streaming de dados de aplicativos, serviços ou dispositivos de IoT.
Por exemplo, um aplicativo SaaS pode publicar um feed de eventos em tempo real. Ou
um sensor residencial pode transmitir dados para o Pub/Sub para uso em
outros Google Cloud produtos por meio de um pipeline de processamento de dados.
Atualizar caches distribuídos. Por exemplo, um aplicativo
pode publicar eventos de invalidação para atualizar os IDs dos objetos que foram
alterados.
Balanceamento de carga para aumentar a confiabilidade. Por exemplo, é possível implantar as instâncias de um
serviço no Compute Engine em várias zonas, mas assinar
um tópico em comum. Quando o serviço falha em uma zona, as outras assumem a carga automaticamente.
Comparação entre o Pub/Sub e outras tecnologias de mensagens
O Pub/Sub combina a escalonabilidade horizontal do
Apache Kafka e do
Pulsar com
recursos encontrados em middlewares de mensagens, como o Apache ActiveMQ e
o RabbitMQ. Exemplos desses recursos são filas de mensagens inativas e filtragem.
Outro recurso de middleware de mensagens incluído no Pub/Sub é o
paralelismo por mensagem, em vez de mensagens baseadas em partição.
O Pub/Sub "concede" mensagens individuais aos clientes do assinante e acompanha se alguma delas foi processada com sucesso.
Em comparação, outros sistemas de mensagens usam partições na escalonabilidade horizontal. Isso obriga os assinantes a processar mensagens em cada partição na ordem e limita o número de clientes simultâneos à quantidade de partições. O processamento por mensagem
maximiza o paralelismo dos aplicativos do assinante e garante a independência
do editor e do assinante.
Comparar a comunicação entre serviços e entre serviços e clientes
O Pub/Sub é voltado para a comunicação entre serviços, e não para a comunicação com clientes de IoT ou usuários finais. Outros produtos oferecem um suporte melhor aos demais padrões:
O Pub/Sub oferece muitas integrações com outros produtos Google Cloud para você criar um sistema de mensagens completo:
Processamento de stream e integração de dados. Compatível com o Dataflow, incluindo os modelos e o SQL do Dataflow. Eles permitem o processamento e a integração de dados no BigQuery e data lakes no Cloud Storage. Os modelos do Dataflow
para mover dados do Pub/Sub para
o Cloud Storage, o BigQuery e outros produtos estão disponíveis nas
IUs do Pub/Sub e do Dataflow no
consoleGoogle Cloud . A integração com o Apache Spark, principalmente quando gerenciado com o Dataproc, também está disponível. Com o Data Fusion, você visualiza os pipelines de integração e processamento executados no Spark e Dataproc.
Monitoramento, alertas e geração de registros. Compatível com os produtos Monitoring e Logging.
Autenticação e IAM. O Pub/Sub usa a autenticação OAuth padrão
usada por outros produtos Google Cloud e oferece suporte ao IAM granular,
o que possibilita o controle de acesso de recursos individuais.
Gatilhos, notificações e webhooks. O Pub/Sub oferece entrega de mensagens
por push como solicitações HTTP POST para webhooks. É possível implementar a automação do fluxo de trabalho usando o Cloud Functions ou outros produtos sem servidor.
Orquestração. O Pub/Sub pode ser integrado de maneira declarativa a fluxos de trabalho
sem servidor de várias etapas. A orquestração analítica e de big data geralmente são feitas com o
Cloud Composer, que é compatível com os gatilhos do Pub/Sub.
Também é possível integrar o Pub/Sub com a
Integração de aplicativos
(pré-lançamento), que é uma
solução de integração de plataforma como serviço (iPaaS). A integração de aplicativos fornece um gatilho do Pub/Sub para acionar ou iniciar integrações.
Conectores de integração(pré-lançamento).
Esses conectores permitem conectar-se a várias fontes de dados.
Com os conectores, os serviços Google Cloud e os aplicativos comerciais de terceiros são expostos
às integrações por uma interface padrão e transparente. No Pub/Sub, você pode criar uma conexão
para usar nas integrações.
[[["Fácil de entender","easyToUnderstand","thumb-up"],["Meu problema foi resolvido","solvedMyProblem","thumb-up"],["Outro","otherUp","thumb-up"]],[["Difícil de entender","hardToUnderstand","thumb-down"],["Informações incorretas ou exemplo de código","incorrectInformationOrSampleCode","thumb-down"],["Não contém as informações/amostras de que eu preciso","missingTheInformationSamplesINeed","thumb-down"],["Problema na tradução","translationIssue","thumb-down"],["Outro","otherDown","thumb-down"]],["Última atualização 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."]]