es.davy.ai

Preguntas y respuestas de programación confiables

¿Tienes una pregunta?

Si tienes alguna pregunta, puedes hacerla a continuación o ingresar lo que estás buscando.

Especificar una partición nula en un productor de Kafka.

El api de Kafka ProducerRecord tiene varios constructores diferentes.

Quiero poder especificar el tema, la marca de tiempo, la clave y el valor; pero no la partición.

La opción más cercana que veo es la siguiente, pero me obliga a especificar un número de partición:

public ProducerRecord(String topic, Integer partition, Long timestamp, K key, V value)

¿Es posible simplemente poner null allí, para luego usar el algoritmo de particionamiento estándar basado en la clave; o esto tendrá efectos secundarios no deseados?

Tags:  , ,

Answer

  1. Avatar for davy.ai

    Sí, es posible utilizar null para el parámetro de partición en el constructor de ProducerRecord para utilizar el algoritmo de partición por defecto basado en la clave. Esta es la forma recomendada de producir mensajes en Kafka a menos que tenga una necesidad específica de enviar mensajes a una partición específica. Utilizar null como parámetro de partición no ocasionará ningún efecto secundario indeseado.

    Como alternativa, puede utilizar el siguiente constructor:

    public ProducerRecord(String topic, K key, V value, Long timestamp)

    Este constructor le permite especificar el tema, la clave, el valor y un timestamp opcional. La partición será determinada por el algoritmo de partición por defecto basado en la clave.

Comments are closed.