Sistemas de mensageria como RabbitMQ e Kafka são amplamente...

Próximas questões
Com base no mesmo assunto
Q3255759 Engenharia de Software
Sistemas de mensageria como RabbitMQ e Kafka são amplamente utilizados para gerenciar a comunicação assíncrona entre serviços, suportando a escalabilidade e a resiliência de sistemas distribuídos. Dado o contexto, analise as afirmativas a seguir.

I. No RabbitMQ, o uso de filas persistentes garante que mensagens sejam armazenadas em disco, mas também impede que múltiplos consumidores processem mensagens simultaneamente para evitar inconsistências.
II. O Kafka é projetado para ser altamente escalável e resiliente, utilizando a replicação de partições para garantir alta disponibilidade dos dados.
III. RabbitMQ é ideal para sistemas que exigem baixa latência na entrega de mensagens, enquanto Kafka é melhor utilizado para sistemas em que a alta taxa de transferência de dados é prioritária.

Está correto o que se afirma em: 
Alternativas

Gabarito comentado

Confira o gabarito comentado por um dos nossos professores

A alternativa correta é a A - II e III, apenas.

Vamos entender o tema central da questão. Ela aborda sistemas de mensageria, especificamente RabbitMQ e Kafka, que são ferramentas críticas para gerenciar a comunicação assíncrona entre serviços em sistemas distribuídos. Esses sistemas permitem que mensagens sejam enviadas e recebidas de maneira eficiente, suportando a escalabilidade e resiliência, elementos essenciais em arquiteturas modernas de software.

Resumo teórico: RabbitMQ e Kafka são frequentemente usados em arquiteturas de microsserviços para desacoplar componentes e melhorar a comunicação entre eles. O RabbitMQ é um message broker que utiliza o protocolo AMQP (Advanced Message Queuing Protocol). Ele é conhecido pela sua flexibilidade e suporte a diferentes padrões de roteamento de mensagens. Já o Kafka é uma plataforma de streaming distribuído, conhecida por sua alta taxa de transferência e capacidade de armazenamento de grandes volumes de dados de forma distribuída. Foi projetado para ser altamente escalável e resiliente.

Justificação da alternativa correta (II e III):

II. Esta afirmativa está correta. O Kafka é projetado para ser altamente escalável e resiliente, utilizando a replicação de partições para garantir alta disponibilidade dos dados. De fato, essa capacidade de replicação garante que, mesmo se um nó falhar, os dados ainda estarão disponíveis em outros nós. Essa característica é fundamental para sistemas que exigem alta disponibilidade e consistência.

III. Esta afirmativa também está correta. RabbitMQ é ideal para cenários que exigem baixa latência, pois permite a entrega rápida e confiável de mensagens. Já o Kafka é projetado para lidar com altas taxas de transferência de dados, sendo adequado para sistemas que priorizam o processamento de grandes volumes de dados rapidamente.

Análise da alternativa incorreta (I):

I. Esta afirmativa está incorreta. No RabbitMQ, o uso de filas persistentes garante que as mensagens sejam armazenadas em disco para garantir a confiabilidade dos dados, mesmo em caso de falhas. No entanto, isso não impede que múltiplos consumidores processem mensagens simultaneamente. Pelo contrário, o RabbitMQ suporta a distribuição de mensagens para múltiplos consumidores, permitindo o processamento concorrente sem causar inconsistências, desde que a lógica de processamento seja corretamente implementada para lidar com concorrência.

Compreender as características específicas de cada sistema de mensageria é crucial para escolher a ferramenta certa, conforme as necessidades dos sistemas distribuídos que você estará desenvolvendo ou gerenciando.

Gostou do comentário? Deixe sua avaliação aqui embaixo!

Clique para visualizar este gabarito

Visualize o gabarito desta questão clicando no botão abaixo

Comentários

Veja os comentários dos nossos alunos

Incorreta.

  • Sim, o RabbitMQ permite persistência de mensagens em disco (quando a fila e a mensagem são marcadas como duráveis).
  • Mas não, isso não impede múltiplos consumidores. O modelo de trabalho com múltiplos consumidores é suportado, inclusive com round-robin (distribuição de carga entre consumidores).
  • A concorrência é gerenciada conforme o comportamento desejado da fila, como o modo de acknowledgement, não pela persistência.

Clique para visualizar este comentário

Visualize os comentários desta questão clicando no botão abaixo