Mensageria e Comunicação Assíncrona

Por
Atualizado em
Publicado em
5 min. de leitura

Olá, querida(o) estudante! Neste artigo, vamos estudar mensageria, filas de mensagens e o paradigma publish/subscribe, temas cada vez mais presentes em concursos de Tecnologia da Informação, especialmente aqueles que cobram arquitetura de sistemas, microsserviços, cloud computing e sistemas distribuídos. Esses conceitos são fundamentais para compreender como aplicações modernas se comunicam de forma eficiente, escalável e resiliente, mesmo em cenários de alta concorrência e falhas parciais.

Ao longo deste texto, vamos entender o que é mensageria, como funcionam as filas, qual a diferença entre comunicação síncrona e assíncrona, e por que o modelo publish/subscribe é tão utilizado em arquiteturas modernas e em contextos como Internet das Coisas (IoT). Ao final, analisaremos questões reais de concurso que exploram exatamente esses conceitos.

O que é mensageria

A mensageria é um modelo de comunicação no qual aplicações trocam informações por meio de mensagens, intermediadas por um sistema especializado, chamado de message broker. Diferentemente da comunicação direta entre sistemas, na mensageria o emissor da mensagem não se comunica diretamente com o receptor. Em vez disso, ele envia a mensagem para o broker, que se encarrega de armazená-la, roteá-la e entregá-la ao destinatário adequado.

Esse modelo promove desacoplamento, pois o sistema que envia a mensagem não precisa saber quem irá recebê-la, nem quando isso ocorrerá. Isso torna a arquitetura mais flexível, tolerante a falhas e preparada para crescer.

Comunicação síncrona x comunicação assíncrona

Na comunicação síncrona, o sistema emissor envia uma requisição e fica bloqueado aguardando a resposta do receptor. Esse modelo é comum em chamadas HTTP tradicionais, mas apresenta limitações em ambientes distribuídos, especialmente quando há alta latência ou indisponibilidade temporária de serviços.

Já na comunicação assíncrona, o emissor envia a mensagem e continua sua execução sem esperar resposta imediata. O processamento ocorre em segundo plano, e a resposta — se existir — pode ser tratada posteriormente. A mensageria é um dos principais mecanismos para implementar esse tipo de comunicação, permitindo maior escalabilidade, resiliência e absorção de picos de carga.

Filas de mensagens

As filas de mensagens são um dos componentes centrais da mensageria. Nelas, as mensagens são armazenadas até que um consumidor esteja disponível para processá-las. Nesse modelo, temos dois papéis bem definidos: o producer, que envia mensagens, e o consumer, que as recebe e processa.

As filas ajudam a equilibrar o fluxo de dados entre sistemas, evitando sobrecarga e permitindo que mensagens sejam processadas no ritmo adequado. Além disso, muitas soluções de mensageria oferecem mecanismos de confirmação de entrega, persistência em disco e reentrega em caso de falha, aumentando a confiabilidade do sistema.

RabbitMQ como plataforma de mensageria

O RabbitMQ é uma das plataformas de mensageria mais utilizadas no mercado e frequentemente cobrada em concursos. Ele atua como um message broker que implementa o protocolo AMQP, permitindo comunicação assíncrona baseada em filas. No RabbitMQ, produtores enviam mensagens para exchanges, que as encaminham para filas conforme regras de roteamento.

Por ser amplamente utilizado em arquiteturas de microsserviços, o RabbitMQ se destaca pela facilidade de integração, suporte a múltiplos protocolos e capacidade de execução em ambientes conteinerizados, como Docker e Kubernetes.

Confiabilidade e entrega de mensagens

Um dos grandes benefícios da mensageria é a possibilidade de entrega confiável de mensagens. Sistemas como o RabbitMQ permitem configurar filas duráveis, mensagens persistentes e confirmações de consumo (acknowledgements). Isso significa que, mesmo em caso de falhas temporárias, as mensagens não são perdidas e podem ser processadas posteriormente.

É importante destacar, contudo, que a confiabilidade depende de configuração adequada. A simples utilização de mensageria não garante, por si só, que todas as mensagens sobreviverão a falhas severas, como quedas de servidor sem persistência configurada.

Publish/Subscribe: comunicação orientada a eventos

O paradigma publish/subscribe (pub/sub) é uma forma de comunicação assíncrona na qual produtores (publishers) publicam eventos, e consumidores (subscribers) recebem apenas os eventos nos quais têm interesse. Nesse modelo, não há comunicação direta entre emissor e receptor, e os participantes permanecem totalmente desacoplados.

Esse paradigma é amplamente utilizado em arquiteturas orientadas a eventos, permitindo que múltiplos sistemas reajam a um mesmo evento de forma independente. Diferentemente das filas tradicionais, no pub/sub uma mesma mensagem pode ser entregue a vários assinantes.

Mensageria, IoT e eventos

Em cenários de Internet das Coisas (IoT), o modelo publish/subscribe é especialmente útil. Dispositivos sensores podem publicar eventos de forma assíncrona, enquanto diferentes aplicações — como sistemas de monitoramento, análise ou alerta — consomem esses dados conforme necessário. Esse modelo reduz acoplamento, economiza recursos e facilita a expansão do sistema.

Por esse motivo, protocolos e plataformas baseados em pub/sub são amplamente adotados em ambientes distribuídos e aparecem com frequência em provas que abordam IoT e sistemas de eventos.

Vamos agora às questões de concurso!

1) Ano: 2025 Banca: CESPE / CEBRASPE Órgão: TJ-PA Prova: CESPE / CEBRASPE – 2025 – TJ-PA – Analista Judiciário – Especialidade: Análise de Sistemas Julgue o item a seguir, em relação aos serviços de mensageria, webhooks e JSON. 

Julgue o item a seguir, em relação aos serviços de mensageria, webhooks e JSON. 

O RabbitMQ permite a comunicação assíncrona entre aplicações por meio de filas, em que producers enviam mensagens e consumers as recebem, o que garante entrega confiável em sistemas distribuídos.

Gabarito: Certo

Comentário

O item está correto. O RabbitMQ é uma plataforma de mensageria que permite comunicação assíncrona baseada em filas, com produtores enviando mensagens e consumidores processando-as. Além disso, oferece mecanismos que possibilitam entrega confiável, como persistência de mensagens e confirmações de consumo, sendo amplamente utilizado em sistemas distribuídos.

2) Ano: 2024 Banca: FGV Órgão: TRF – 1ª REGIÃO Prova: FGV – 2024 – TRF – 1ª REGIÃO – Analista Judiciário – Área Apoio Especializado – Especialidade: Análise de Sistemas de Informação

Em um ambiente de microsserviços, é muito comum utilizar o RabbitMQ como plataforma de mensageria. Trata-se de um produto de fácil configuração para execução em contêineres.

Sobre o RabbitMQ, é correto afirmar que: 

  1. por ter sido criado na linguagem Erlang, exige a utilização de consumidores implementados na mesma linguagem;
  2. permite trabalhar apenas com AMQP 0.9.1, inviabilizando qualquer forma de utilização do STOMP ou MQTT;
  3. embora gerencie internamente os privilégios dos usuários, permite o uso de LDAP para autenticação;
  4. trabalha apenas com filas duráveis, o que garante que todas as mensagens se recuperem de eventuais quedas do servidor;
  5. oferece diversos tipos de exchange, como topic exchange, que direciona a mensagem de forma automática para todas as filas associadas, no modelo broadcast. 

Gabarito: Letra C

Comentário

A alternativa correta é a C, pois o RabbitMQ permite gerenciar usuários internamente e também integrar autenticação via LDAP, o que é comum em ambientes corporativos.

Análise das alternativas:

  • A – Incorreta. Embora o RabbitMQ seja implementado em Erlang, ele permite consumidores em diversas linguagens.
  • B – Incorreta. O RabbitMQ suporta outros protocolos além do AMQP, como STOMP e MQTT.
  • C – Correta. O uso de LDAP para autenticação é suportado.
  • D – Incorreta. Nem todas as filas são duráveis por padrão; isso depende de configuração.
  • E – Incorreta. A topic exchange não realiza broadcast indiscriminado; isso é característico da fanout exchange.

3) Ano: 2024 Banca: IV – UFG Órgão: IF-SE Prova: IV – UFG – 2024 – IF-SE – Professor EBTT – Informática

Na programação para Internet das Coisas (IoT – Internet of Things), o paradigma de interação publish-subscribe (também conhecido como “publicador-assinante”) é útil para

  1. realização de chamadas assíncronas de procedimentos remotos pelos dispositivos IoT para enviar dados coletados por sensores para processamento em servidores localizados na rede.
  2. realização de chamadas de procedimentos remotos pelos servidores de processamento para obtenção de dados coletados pelos dispositivos IoT.
  3. comunicação síncrona ou assíncrona entre os dispositivos IoT e os servidores de processamento para o envio de eventos de dados para as aplicações neles interessadas. 
  4. comunicação síncrona entre os servidores de processamento e os dispositivos IoT para envio de requisições que comunicam a ocorrência de eventos a destinatários com endereços específicos.

Gabarito: Letra C

Comentário

A alternativa correta é a C, pois o modelo publish/subscribe permite comunicação síncrona ou assíncrona orientada a eventos, em que dados são enviados a todas as aplicações interessadas, sem endereçamento direto.

Análise das alternativas:

  • A – Incorreta. Não se trata de chamadas remotas de procedimento.
  • B – Incorreta. O modelo não é baseado em requisições diretas do servidor.
  • C – Correta. Reflete corretamente o paradigma pub/sub.
  • D – Incorreta. O pub/sub não depende de comunicação síncrona nem de endereços específicos.

Conclusão

A mensageria é um dos pilares das arquiteturas modernas. Por meio de filas e do paradigma publish/subscribe, sistemas distribuídos conseguem se comunicar de forma assíncrona, desacoplada e escalável. Plataformas como o RabbitMQ viabilizam esse modelo ao oferecer mecanismos de roteamento, persistência e confiabilidade. Por isso, compreender esses conceitos é essencial para quem se prepara para concursos de TI, já que as bancas exploram tanto os fundamentos quanto sua aplicação em microsserviços, IoT e sistemas orientados a eventos.

Referências

  • Hohpe, G.; Woolf, B. Enterprise Integration Patterns. Addison-Wesley, 2004.
  • Tilkov, S.; Vinoski, S. Node.js: Evented I/O for V8 JavaScript. IEEE, 2010.
  • RabbitMQ Documentation – https://www.rabbitmq.com
  • Apache Kafka Documentation – https://kafka.apache.org
  • Mozilla Developer Network (MDN)

Por
Atualizado em
Publicado em
5 min. de leitura