1
resposta

Vários consumidores, consumindo a mesma mensagem em tópicos diferentes

Olá,

Gostaria de saber se seria possível ter mais de um consumidor em partições distintas, consumindo a mesma mensagem de um tópico? Quais seriam os ajustes necessários nesse caso?

1 resposta

Oi, dev! Tudo bem com você?

Peço desculpas pela demora no retorno a sua mensagem.

Sim, é possível ter mais de um consumidor em partições distintas consumindo a mesma mensagem de um tópico no Kafka. Para isso, precisamos garantir que os consumidores estejam no mesmo grupo de consumidores e que cada consumidor esteja atribuído a uma partição diferente.

Ao criar os consumidores, podemos definir o mesmo grupo de consumidores para todos eles, utilizando a propriedade group.id. Por exemplo:

properties.put("group.id", "grupo-consumidores");

Em seguida, podemos atribuir cada consumidor a uma partição específica utilizando o método assign() da classe KafkaConsumer. Por exemplo:

consumer.assign(Arrays.asList(new TopicPartition("nome-topico", 0)));

Dessa forma, cada consumidor estará consumindo uma partição diferente do tópico, mas todos estarão recebendo a mesma mensagem.

É importante lembrar que, ao utilizar vários consumidores no mesmo grupo, o Kafka irá balancear automaticamente as partições entre eles, garantindo que cada consumidor receba uma quantidade equilibrada de mensagens para processar.

Todavia, vale ressaltar que como você postou sua pergunta há algum tempo é possível que a constante evolução da tecnologia impacte na resolução da sua dúvida. Sendo assim, caso queira se aprofundar neste tema e com conteúdos atualizados, recomendo a formação abaixo:

Espero ter ajudado.

Abraços e bons estudos!