¿Cómo puedo definir el productor de kafka que tendrá una clave de tipo personalizado y un serializador de valor según la necesidad?

Tengo KafkaProducer, he configurado el serializador de clave y valor como a continuación:

    props.put("key.serializer", "org.apache.kafka.common.serialization.StringSerializer");
    props.put("value.serializer", "my custom class");   

Ahora mi pregunta es cómo puedo definir el productor para diferentes tipos de clase de serializador de valor como:

    props.put("value.serializer", "my custom class1");
    props.put("value.serializer", "my custom class2");

Para obtener el mejor rendimiento, es mejor inicializar un solo productor de kafka solo en la aplicación. Entonces, ¿cómo puedo definir el productor de kafka que tendrá una clave de tipo personalizado diferente y un serializador de valor según la necesidad?

Respuesta 1

No puede tener más de un serializador por instancia de productor.

Si tiene más de un serializador, necesita múltiples propiedades y, por lo tanto, múltiples instancias de productor configuradas.


Sin embargo, esto no significa que haya otras formas de evitarlo. Spring-Kafka ofrece tipos de mapeo para JSON, y Confluent admite esquemas Avro multitipados en los serializadores Java.

Respuesta: 2

Estoy trabajando en Java Tengo una clase llamada Comando. Esta clase de objeto almacena una lista variable de parámetros que son primitivos (principalmente int y double). El tipo, número y orden de los parámetros es ...

Estoy súper confundido con este. El código es generar todas las permutaciones de una lista dada de enteros. Una vez que haces esto, agregan otra restricción que es que la entrada dada puede tener duplicados, ...

Necesito usar Java Stream en este código, pero no sé cómo funciona con una lista vacía. Estoy tratando de encontrar algo así como un tiempo en Stream Java 8, pero no puedo encontrarlo. Lista estática pública <...

Necesito convertir String [] a Byte [] en Java. Esencialmente, tengo una cadena delimitada por espacios devuelta desde mi base de datos. He dividido con éxito esta cadena en una matriz de elementos de cadena, y ahora ...