Junior — Middle
É possível garantir uma saída sequencial de mensagens do Kafka de modo que elas sejam enviadas na mesma ordem em que foram gravadas no tópico?
sobes.tech IA
Resposta da IA
No Kafka, a ordem das mensagens é garantida apenas dentro de uma única partição (partition) do tópico. Se desejar garantir a saída sequencial das mensagens na mesma ordem em que foram escritas, deve:
- Utilizar uma única partição para todas as mensagens, para que a ordem seja preservada.
- Consumir as mensagens dessa partição de forma sequencial com um único consumidor.
Se o tópico tiver várias partições, a ordem das mensagens entre elas não é garantida, pois cada partição é processada de forma independente.
Exemplo de configuração do produtor para enviar a uma única partição:
ProducerRecord<String, String> record = new ProducerRecord<>("topic", 0, key, value);
producer.send(record);
Aqui, a partição 0 é explicitamente especificada para que todas as mensagens sejam enviadas a uma única partição e a ordem seja mantida.