Мы можем создать несколько kafkaProducer с различными сериализаторами KEY, VALUE, и мы можем обработать эти kafkaProducers
@Bean
public Map<String, Object> producerProperties() {
Map<String, Object> configProps = new HashMap<>();
configProps.put(ProducerConfig.BOOTSTRAP_SERVERS_CONFIG, bootstrapAddress);
configProps.put(ProducerConfig.RETRIES_CONFIG,"2000");
configProps.put(ProducerConfig.KEY_SERIALIZER_CLASS_CONFIG, StringSerializer.class);
configProps.put(ProducerConfig.VALUE_SERIALIZER_CLASS_CONFIG, StringSerializer.class);
return configProps;
}
@Bean
public KafkaProducer<String, String> kafkaProducer() {
return new KafkaProducer<String, String>(producerProperties());
}
@Bean
public Map<String, Object> producerJSONProperties() {
Map<String, Object> configProps = new HashMap<>();
configProps.put(ProducerConfig.BOOTSTRAP_SERVERS_CONFIG, bootstrapAddress);
configProps.put(ProducerConfig.RETRIES_CONFIG,"2000");
configProps.put(ProducerConfig.KEY_SERIALIZER_CLASS_CONFIG, JSONSerializer.class);
configProps.put(ProducerConfig.VALUE_SERIALIZER_CLASS_CONFIG, JSONSerializer.class);
return configProps;
}
@Bean
public KafkaProducer<String, String> kafkaJSONProducer() {
return new KafkaProducer<String, String>(producerJSONProperties());
}