Junior — Middle
¿Cómo selecciona el productor de Kafka la partición para enviar un mensaje?
sobes.tech AI
Respuesta de la IA
El productor de Kafka selecciona la partición para enviar un mensaje en función de la clave del mensaje y la configuración de particionado. Si el mensaje tiene una clave, Kafka utiliza una función hash de esa clave para determinar la partición específica, asegurando que todos los mensajes con una misma clave vayan a la misma partición. Si no hay clave, el productor generalmente distribuye los mensajes de manera circular (round-robin) para equilibrar la carga.
Ejemplo en Go usando la biblioteca sarama:
producer, _ := sarama.NewSyncProducer(brokers, config)
msg := &sarama.ProducerMessage{
Topic: "my_topic",
Key: sarama.StringEncoder("userID123"), // clave para particionado
Value: sarama.StringEncoder("mensaje payload"),
}
partition, offset, err := producer.SendMessage(msg)
Aquí, la clave "userID123" se usará para seleccionar la partición, de modo que todos los mensajes con esa clave vayan a la misma partición.