Junior — Middle
Como é que o produtor Kafka escolhe a partição para enviar uma mensagem?
sobes.tech IA
Resposta da IA
O produtor Kafka escolhe uma partição para enviar uma mensagem com base na chave da mensagem e nas configurações de particionamento. Se a mensagem tiver uma chave, o Kafka usa uma função hash dessa chave para determinar a partição específica, garantindo que todas as mensagens com uma mesma chave vão para a mesma partição. Se não houver chave, o produtor geralmente distribui as mensagens de forma circular (round-robin) para equilibrar a carga.
Exemplo em Go usando a biblioteca sarama:
producer, _ := sarama.NewSyncProducer(brokers, config)
msg := &sarama.ProducerMessage{
Topic: "my_topic",
Key: sarama.StringEncoder("userID123"), // chave para particionamento
Value: sarama.StringEncoder("payload da mensagem"),
}
partition, offset, err := producer.SendMessage(msg)
Aqui, a chave "userID123" será usada para escolher a partição, para que todas as mensagens com essa chave vão para a mesma partição.