Questão de Arquitetura de Software — Sistemas Distribuídos — FGV 2025
Arquitetura de Software›Sistemas 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
AI, apenas.
BII, apenas.
CI e II, apenas.
DII e III, apenas.
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).