Pular para o conteúdo principal

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

Arquitetura de SoftwareSistemas Distribuídos
Código
fg121845
Banca
FGV
Órgão
TCE-RR
Ano
2025
Nível
Superior
Cargo
Analista Administrativo - Tecnologia da Informação, com especialidade em Desenvolvimento de Sistemas
Apache Kafka e RabbitMQ são duas tecnologias importantes no contexto de desenvolvimento de aplicações modernas quando se trata de pipeline de dados de streaming e mensageria.A respeito dessas ferramentas, julgue as seguintes afirmativas:I. O Kafka emprega um modelo de log particionado, o qual reúne abordagens de fila de mensagens e assinatura de publicação.II. O RabbitMQ utiliza um protocolo binário via TCP.III. O Kafka não permite que variados consumidores recebam a mesma mensagem, uma vez que são excluídas após consumo.Está correto o que se afirma em
  1. AI, apenas.
  2. BII, apenas.
  3. CI e II, apenas.
  4. DII e III, apenas.
  5. EI, II e III.
Revelar gabarito e comentário

GabaritoA — I, apenas.

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

Apache Kafka e RabbitMQ

Gabarito: letra A. Apenas a afirmativa I está correta. O Kafka utiliza um modelo de log particionado que combina fila e pub/sub. As afirmativas II e III são incorretas: o RabbitMQ suporta diversos protocolos (inclusive textuais como STOMP) e o Kafka retém mensagens por tempo configurável, permitindo que múltiplos consumidores as recebam.

A questão testa o conhecimento sobre as características fundamentais dos dois principais message brokers usados em sistemas distribuídos.

Item I — ✅ Correto

O Kafka adota um modelo de log distribuído e particionado. Cada partição é uma sequência ordenada de mensagens, e os consumidores podem se organizar em grupos: dentro de um grupo, cada mensagem é processada por apenas um consumidor (modelo fila); entre grupos diferentes, todos recebem a mensagem (modelo pub/sub). Portanto, ele reúne ambas as abordagens.

Item II — ❌ Incorreto

O RabbitMQ suporta nativamente o protocolo AMQP (Advanced Message Queuing Protocol), que é binário e opera sobre TCP. No entanto, ele também oferece suporte a MQTT (binário) e STOMP (texto). A afirmativa diz que "utiliza um protocolo binário via TCP", o que é verdade, mas dá a entender que é o único modo de operação, ignorando a pluralidade de protocolos. Por isso, a banca considerou a afirmação imprecisa. Além disso, o STOMP é textual, o que torna a afirmação restritiva demais.

Item III — ❌ Incorreto

No Kafka, as mensagens não são excluídas imediatamente após o consumo. Elas permanecem no log por um período de retenção configurável (ex.: 7 dias). Isso permite que consumidores de grupos diferentes leiam a mesma mensagem quantas vezes desejarem, desde que dentro do período de retenção. A afirmativa inverte o comportamento típico de filas tradicionais (como RabbitMQ em modo de fila simples), onde a mensagem é removida após o consumo pelo primeiro consumidor.

NÃO CAIA NESSA!

A banca explora a confusão entre o modelo de fila tradicional (mensagem é consumida e excluída) e o modelo de log do Kafka, que retém as mensagens e permite múltiplas leituras por diferentes grupos de consumidores. Memorize: Kafka é log-based, RabbitMQ é queue-based (embora também suporte pub/sub com exchanges).

Gabarito: letra A (apenas a afirmativa I está correta).

Link permanente: /questoes/fg121845