Pular para o conteúdo principal

Questão de Arquitetura de Software — Sistemas Distribuídos — FGV 2026

Arquitetura de SoftwareSistemas Distribuídos
Código
fg133903
Banca
FGV
Órgão
TJ-RJ
Ano
2026
Nível
Superior
Cargo
Analista Judiciário - Tecnologia da Informação - Analista de Sistemas
Uma equipe de analistas está desenvolvendo um sistema de notificação em tempo real para informar outros sistemas sobre alterações de status em processos judiciais. A equipe deve basear o sistema em filas de mensagens, utilizando um servidor RabbitMQ. A fim de minimizar os custos associados ao tráfego de notificações, o sistema deve buscar, o máximo possível, entregar cada notificação exatamente uma vez. Para que o sistema opere dentro dos critérios propostos, a equipe deve configurar o servidor RabbitMQ de forma a:
  1. Ausar filas temporárias e desativar ACKs;
  2. Bdefinir fanout exchanges com filas exclusivas;
  3. Cativar o modo NACK nos consumidores e usar mensagens transitórias;
  4. Dativar publisher confirms, usar filas duráveis e mensagens persistentes;
  5. Ehabilitar ACKs manuais nos consumidores e desabilitar persistência de mensagens.
Revelar gabarito e comentário

GabaritoD — ativar publisher confirms, usar filas duráveis e mensagens persistentes;

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”.

RabbitMQ: Garantia de entrega exatamente uma vez

Gabarito: letra D. A combinação de publisher confirms, filas duráveis e mensagens persistentes assegura que o broker confirme o recebimento e que as mensagens sobrevivam a reinicializações, condição essencial para atingir entrega exactly-once. As demais opções sacrificam durabilidade ou confirmação, incorrendo em perda ou duplicação.

Alternativa A — ❌ Incorreta

Usar filas temporárias e desativar ACKs elimina a confirmação de entrega. Mensagens podem se perder se o consumidor falhar antes de processar, violando a garantia de exatamente uma vez.

Alternativa B — ❌ Incorreta

Fanout exchanges com filas exclusivas são adequadas para broadcast, mas não oferecem mecanismos de persistência ou confirmação; não atendem ao requisito de exactly-once.

Alternativa C — ❌ Incorreta

Ativar NACK e usar mensagens transitórias não garante durabilidade. Mensagens transitórias são perdidas se o broker reiniciar, e o NACK apenas sinaliza falha, sem assegurar entrega única.

Alternativa D — ✅ Correta ⟵ GABARITO

Publisher confirms garantem que o broker recebeu a mensagem; filas duráveis e mensagens persistentes asseguram que elas não se percam com falhas. Com consumidores idempotentes, é possível atingir a entrega exatamente uma vez.

Alternativa E — ❌ Incorreta

ACKs manuais dão controle ao consumidor, mas desabilitar persistência faz com que as mensagens se percam em caso de reinicialização do broker, comprometendo a confiabilidade necessária para exactly-once.

PEGA ESSA DICA!

Em sistemas de mensageria, exactly-once geralmente requer confirmação do produtor (publisher confirms), durabilidade e idempotência no consumidor. Lembre-se: "persistência + confirmação = base para entrega confiável".

Gabarito: letra D.

Link permanente: /questoes/fg133903