Pular para o conteúdo principal

Questão de Arquitetura de Software — Sistemas Distribuídos — CESPE / CEBRASPE 2025

Arquitetura de SoftwareSistemas 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 é
  1. Ao processamento imediato de todas as mensagens sem necessidade de recuperação em caso de falha.
  2. Ba criação de múltiplos canais simultâneos para envio indiscriminado das mensagens, independentemente da ordem de processamento.
  3. Co armazenamento temporário das mensagens em uma fila persistente até que elas sejam processadas com sucesso.
  4. Do envio repetido de mensagens idênticas sem controle de duplicação para que cheguem ao destino.
  5. 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).

  1. 1Produtor envia mensagem
  2. 2Fila persistente armazena
  3. 3Consumidor processa
  4. 4Consumidor confirma (ACK)
  5. 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.

Link permanente: /questoes/ce195198