RabbitMQ Messaging & Async Systems · Aula

Publicação e assinatura com exchanges fanout

Aprenda a transmitir mensagens simultaneamente para muitos consumidores usando o padrão de publicação e assinatura do RabbitMQ, baseado em exchanges fanout e filas temporárias.

Aula 4 de 413 etapas

Publicação e assinatura com exchanges fanout é uma aula grátis de RabbitMQ Messaging & Async Systems no CoddyKit. Esta é a aula 4 de 4. Você pode ler a aula completa abaixo gratuitamente — depois pratica ao vivo no navegador com um editor de código integrado e um tutor de IA 24/7. Faz parte do caminho de aprendizado de RabbitMQ Messaging & Async Systems, e seu progresso é sincronizado entre a web e o app CoddyKit. O curso de RabbitMQ Messaging & Async Systems inclui 4 aulas no total.

Partes desta aula ainda não foram traduzidas e aparecem em inglês.

Beyond a Single Consumer

Work queues deliver each message to one worker. But sometimes every interested consumer needs the same message — like broadcasting a live score to all dashboards.

This is the publish/subscribe pattern.

The Fanout Exchange

Pub/sub in RabbitMQ uses a fanout exchange, which copies every incoming message to all queues bound to it, ignoring routing keys entirely.

Declaring a Fanout Exchange

A producer declares the fanout exchange and publishes to it.

channel.exchangeDeclare('scores', 'fanout');
channel.basicPublish('scores', '', null, body);

Empty Routing Key

Notice the routing key is an empty string. Fanout exchanges ignore it, so producers do not need to specify any routing logic at all.

Temporary Queues

Each subscriber usually wants a fresh, private queue. Declaring a queue with no name lets RabbitMQ generate a random one, and marking it exclusive auto-deletes it when the consumer disconnects.

String q = channel.queueDeclare().getQueue();

Binding the Queue

The subscriber binds its temporary queue to the fanout exchange so it begins receiving broadcasts.

channel.queueBind(q, 'scores', '');

Multiple Independent Subscribers

Because each subscriber has its own queue, they all get independent copies of every message. Adding a new subscriber does not affect the others.

Pub/Sub vs Work Queues

Key difference:

  • Work queue — one queue, many workers, each message handled once
  • Pub/sub — many queues, each subscriber gets every message

Common Use Cases

Fanout pub/sub fits:

  • Live notifications and dashboards
  • Cache invalidation across many nodes
  • Broadcasting configuration changes
  • Logging to multiple sinks

Messages Without Consumers

If no queue is bound to a fanout exchange when a message arrives, the message is simply discarded. Fanout does not store anything itself — queues do.

Scaling Subscribers

To scale pub/sub, just add more subscribers, each with its own temporary queue bound to the exchange. The fanout exchange handles fan-out automatically.

Quick Check

Test your pub/sub knowledge.

Recap

You learned the publish/subscribe pattern:

  • Fanout exchanges broadcast to all bound queues
  • The routing key is ignored
  • Subscribers use temporary exclusive queues
  • Each subscriber gets an independent copy of every message

This pattern is the foundation for notifications, cache invalidation, and live updates.

Grátis para começar

Aprenda RabbitMQ Messaging & Async Systems com um tutor de IA — grátis

Escreva e execute código real no seu navegador, obtenha ajuda instantânea de um tutor de IA 24/7 e continue de onde parou na web ou no app.

Cursos
11
Aulas
44

Perguntas Frequentes

A aula “Publicação e assinatura com exchanges fanout” é grátis?

Sim — o texto completo de “Publicação e assinatura com exchanges fanout” é grátis para ler aqui na web. Para praticá-la interativamente (um editor de código integrado e um tutor de IA 24/7) e desbloquear o restante do curso de RabbitMQ Messaging & Async Systems, atualize para CoddyKit PRO. O curso de RabbitMQ Messaging & Async Systems inclui 4 aulas no total.

O que vou aprender em “Publicação e assinatura com exchanges fanout”?

Aprenda a transmitir mensagens simultaneamente para muitos consumidores usando o padrão de publicação e assinatura do RabbitMQ, baseado em exchanges fanout e filas temporárias. Você pratica RabbitMQ Messaging & Async Systems com código prático que executa diretamente no navegador, e um tutor de IA 24/7 responde suas dúvidas enquanto trabalha na aula.

Preciso ter experiência prévia para começar RabbitMQ Messaging & Async Systems?

Nenhuma experiência prévia é necessária. RabbitMQ Messaging & Async Systems no CoddyKit é estruturado para alunos iniciantes até avançados, então você pode começar aqui ou desde o início e aprender no seu ritmo. Esta é a aula 4 de 4.

Quanto tempo leva a aula “Publicação e assinatura com exchanges fanout”?

A maioria das aulas CoddyKit leva cerca de 5–10 minutos. Cada uma é compacta e interativa, então você faz progresso constante e retoma exatamente de onde parou entre web e app.

Posso escrever e executar código nesta aula de RabbitMQ Messaging & Async Systems?

Sim. Cada aula de RabbitMQ Messaging & Async Systems inclui um editor de código integrado, então você escreve e executa código real direto no navegador e recebe feedback de IA instantaneamente — nenhuma configuração local necessária.

Todas as aulas deste curso

  1. Olá, mundo: fila simples
  2. Filas de trabalho: distribuição justa
  3. Confirmações e durabilidade de mensagens
  4. Publicação e assinatura com exchanges fanout
← Voltar para RabbitMQ Messaging & Async Systems