0
respostas

Duvida - Garantia de Processamento da Mensagem

Tudo bom ? Algumas coisas não ficaram muito claras para mim. Se subo, por exemplo, 3 instancias do Kafka e configuro elas pra replicarem as mensagens as 3 devem passar a manter uma copia das mensagens que precisa ser enviada para os consumidores, certo? Quem garante que as 3 estão relacionadas e sabendo das mensagens existentes é o Zookeeper, certo? Mesmo eu não informando em momento algum onde esta o Zookeeper [porta 2181], quando me comunico com a instancia do Kafka que informo a porta ele faz esse gerenciamento para mim e então meu consumidor passa a falar com o Zookeeper e a saber das outras instancias do Kafka que estão online/funcionando?

Se configuro para todos os consumidores que forem consumir uma mensagem informarem que receberam a mensagem do Kafka, eu garanto a entrega da mensagem, certo? Ao menos para os consumidores que estiverem funcionamento naquele momento, certo? Ok, mas em que momento eu informo o Kafka que processei a mensagem e que ele pode considerar ela como finalizada? Me deu a impressão que o consumidor informa ele do recebimento e não da finalização do processamento dela... e se o Kafka replica a mensagem para mais de 1 consumidor, o que garante que + de 1 deles não processara a mensagem também, gerando duplicações futuras?

Ainda nesse ponto da informação do recebimento da mensagem entre consumidor e o Kafka, se no momento da criação da mensagem eu só tenho 1 consumidor, o Kafka replicará a mensagem somente para ele? Mesmo se depois subir mais 2 consumidores que poderiam processar a mensagem, ele considerará o numero de replicas baseado nas que estavam online ou no numero de partições que deveriam existir?

Por fim hehe tem algum livro/artigo/o que for que recomendam para aprofundar o conhecimento?