Pular para o conteúdo principal

Questão de Programação — Web — FGV 2024

ProgramaçãoWeb
Código
fg100845
Banca
FGV
Órgão
TRF - 1ª REGIÃO
Ano
2024
Nível
Superior
Cargo
Analista Judiciário - Área Apoio Especializado - Especialidade: Análise de Sistemas de Informação
Em um ambiente de microsserviços, é muito comum utilizar o RabbitMQ como plataforma de mensageria. Trata-se de um produto de fácil configuração para execução em contêineres.Sobre o RabbitMQ, é correto afirmar que:
  1. Apor ter sido criado na linguagem Erlang, exige a utilização de consumidores implementados na mesma linguagem;
  2. Bpermite trabalhar apenas com AMQP 0.9.1, inviabilizando qualquer forma de utilização do STOMP ou MQTT;
  3. Cembora gerencie internamente os privilégios dos usuários, permite o uso de LDAP para autenticação;
  4. Dtrabalha apenas com filas duráveis, o que garante que todas as mensagens se recuperem de eventuais quedas do servidor;
  5. Eoferece diversos tipos de exchange, como topic exchange, que direciona a mensagem de forma automática para todas as filas associadas, no modelo broadcast.
Revelar gabarito e comentário

GabaritoC — embora gerencie internamente os privilégios dos usuários, permite o uso de LDAP para autenticação;

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

Gabarito: letra C. Embora o RabbitMQ possua seu próprio sistema de autenticação e autorização, ele permite integração com LDAP para autenticação externa. As demais alternativas contêm imprecisões sobre protocolos, tipos de exchange, persistência e linguagens de consumidores.

Alternativa A — ❌ Incorreta

Afirma que consumidores devem ser implementados em Erlang por o RabbitMQ ser criado nessa linguagem. Na verdade, o RabbitMQ suporta diversos protocolos (AMQP, STOMP, MQTT) e clientes em várias linguagens (Java, Python, JavaScript, etc.). A linguagem de implementação do servidor não impõe restrição aos consumidores.

Alternativa B — ❌ Incorreta

Diz que o RabbitMQ trabalha apenas com AMQP 0.9.1 e inviabiliza STOMP e MQTT. Na realidade, o RabbitMQ suporta múltiplos protocolos, incluindo AMQP 0-9-1, AMQP 1.0, STOMP, MQTT e até HTTP via plugin. Portanto, a afirmação é falsa.

Alternativa C — ✅ Correta ⟵ GABARITO

O RabbitMQ gerencia internamente usuários e permissões, mas oferece suporte a LDAP como backend de autenticação. Isso permite integrar com diretórios corporativos sem duplicar contas. A afirmação está correta.

Alternativa D — ❌ Incorreta

Afirma que o RabbitMQ trabalha apenas com filas duráveis. Na verdade, filas podem ser configuradas como duráveis (persistem mensagens em disco) ou não-duráveis (transitórias, perdidas em reinicializações). Mensagens em filas não-duráveis são perdidas com queda do servidor, logo a recuperação total não é garantida.

Alternativa E — ❌ Incorreta

Descreve o topic exchange como broadcast (envio a todas as filas). O comportamento de broadcast é do fanout exchange. O topic exchange utiliza routing keys com padrões (ex.: *.critical) para direcionar mensagens apenas às filas cujo padrão corresponda. Há troca do conceito de exchange.

NÃO CAIA NESSA!

A alternativa E confunde o topic exchange com o fanout exchange. O fanout envia a mensagem para todas as filas vinculadas (broadcast); o topic filtra por padrão de routing key. Essa troca é clássica em provas.

PEGA ESSA DICA!

Memorize os quatro tipos de exchange do RabbitMQ: direct (routing key exata), fanout (broadcast), topic (routing key com wildcards) e headers (baseado em atributos). Saber a diferença entre eles é essencial para questões de mensageria.

Gabarito: letra C.

Link permanente: /questoes/fg100845