Rack: proposta de configuração para garantia de entrega de mensagens no Apache Kafka
View/ Open
Date
2022-04-11Primeiro membro da banca
Lima, João Vicente Ferreira
Segundo membro da banca
Griebler, Dalvan Jair
Metadata
Show full item recordAbstract
Atualmente, uma das formas de atingir escalabilidade e flexibilidade durante a construção
de aplicações complexas é adotando o paradigma de microsserviços. Por meio de microsserviços,
aplicações podem ser fragmentadas em processos isolados e independentes que
se comunicam entre si. Entretanto, existe uma problemática presente neste paradigma que
trata especificamente da comunicação entre os diversos micro processos de uma mesma
aplicação. Para a resolução desta problemática, pode-se aplicar o conceito de mensageria
do Apache Kafka para realizar a troca de mensagens entre cada serviço. O Apache Kafka
é uma plataforma de mensageria e streaming de dados que segue um modelo produtorconsumidor.
A arquitetura do Kafka conta com o mecanismo de Reconhecimento Positivo
(ack), o qual visa garantir a entrega de mensagens. Apesar de existirem três níveis de configuração
para ack, os mesmos apresentam restrições de confiabilidade ou desempenho
durante a transmissão de mensagens em redes instáveis, obrigando usuários a priorizarem
um destes requisitos. Este trabalho tem por objetivo apresentar o Reliable Ack (rAck), uma
configuração para transmissão de mensagens baseada no monitoramento, identificação e
recuperação de mensagens em caso de perda. Uma fase experimental foi conduzida a
fim de comparar a configuração rAck com os níveis padrões de ack em termos de confiabilidade
e desempenho. Os experimentos foram estruturados para realizar transmissões
de mensagens com introdução de falhas de rede que resultavam em perda de pacotes e
atraso na entrega de pacotes. Nos cenários com perda de pacotes, a configuração rAck
demonstrou melhor desempenho frente aos níveis padrões do Kafka. Já nos cenários com
atraso na entrega de pacotes, as falhas introduzidas não impactaram os níveis padrões,
mantendo desempenhos melhores que configuração rAck. No que tange à confiabilidade,
em ambos os cenários a configuração rAck foi capaz de recuperar todas as mensagens
perdidas. Em contrapartida, os níveis padrões estavam sujeitos a perdas ou duplicações
de mensagens.
Collections
The following license files are associated with this item: