Questão de Arquitetura de Software — Sistemas Distribuídos — CESPE / CEBRASPE 2025
Arquitetura de Software›Sistemas Distribuídos
Código
ce195198
Banca
CESPE / CEBRASPE
Órgão
BANRISUL
Ano
2025
Nível
Superior
Cargo
Técnico em Tecnologia da Informação II - Desenvolvimento de Software
Em arquiteturas que utilizam mensageria para a comunicação entre sistemas, uma técnica eficiente para a garantia da entrega de mensagens sem perda é
Ao processamento imediato de todas as mensagens sem necessidade de recuperação em caso de falha.
Ba criação de múltiplos canais simultâneos para envio indiscriminado das mensagens, independentemente da ordem de processamento.
Co armazenamento temporário das mensagens em uma fila persistente até que elas sejam processadas com sucesso.
Do envio repetido de mensagens idênticas sem controle de duplicação para que cheguem ao destino.
Ea comunicação direta entre serviços em tempo real, eliminando-se a necessidade de armazenamento intermediário.
Revelar gabarito e comentário▾
GabaritoC — o armazenamento temporário das mensagens em uma fila persistente até que elas sejam processadas com sucesso.
Comentário gerado por IA. É um apoio ao estudo, ancorado em fontes, mas pode conter imprecisões — confira sempre na fonte oficial (lei, súmula, edital e gabarito da banca). Encontrou um erro? Use “Reportar”.
Mensageria e Garantia de Entrega em Sistemas Distribuídos
Gabarito: letra C. Em sistemas que utilizam mensageria para comunicação, a técnica mais eficiente para garantir a entrega de mensagens sem perda é o armazenamento temporário em uma fila persistente até que a mensagem seja processada com sucesso. Isso permite que, mesmo em caso de falha do consumidor, a mensagem seja recuperada e processada posteriormente — conceito fundamental de middleware de mensageria (filas, tópicos, confirmação de recebimento).
1Produtor envia mensagem
2Fila persistente armazena
3Consumidor processa
4Consumidor confirma (ACK)
5Fila remove mensagem
LEVEL · soulevel.com.br
Alternativa A — ❌ Incorreta
O processamento imediato sem mecanismo de recuperação não garante a entrega: se o consumidor falhar antes de processar a mensagem, ela é perdida. Sistemas confiáveis exigem persistência e confirmação (acknowledgement).
Alternativa B — ❌ Incorreta
Múltiplos canais simultâneos, sem controle de ordem ou persistência, não resolvem o problema de perda. Podem até causar processamento duplicado ou fora de ordem, mas não garantem que cada mensagem será entregue ao menos uma vez.
Alternativa C — ✅ Correta ⟵ GABARITO
Filas persistentes (ex.: RabbitMQ, Amazon SQS, Kafka com configuração adequada) armazenam as mensagens em disco até que o consumidor as processe e envie confirmação. Se o consumidor falhar, a mensagem permanece na fila para reprocessamento. Esse padrão é conhecido como at-least-once delivery e é essencial para entrega confiável sem perda.
Alternativa D — ❌ Incorreta
Envio repetido de mensagens idênticas sem controle de duplicação pode gerar processamento duplicado e não elimina a possibilidade de perda se o remetente falhar antes de entregar todas as cópias. Além disso, sobrecarrega a rede e o consumidor.
Alternativa E — ❌ Incorreta
A comunicação direta em tempo real, sem armazenamento intermediário, remove a capacidade de recuperação em caso de falha. Se o serviço destino estiver indisponível, a mensagem é perdida — justamente o oposto da garantia de entrega.
Conclusão: Apenas a alternativa C descreve corretamente uma técnica eficiente e amplamente adotada para garantir a entrega de mensagens sem perda em sistemas distribuídos baseados em mensageria.