defaultkafkaproducerfactory

lstz6jyr  于 2021-06-07  发布在  Kafka
关注(0)|答案(1)|浏览(360)

我浏览了spring文档,发现我们可以为单个生产者工厂spring文档创建多个Map

senderProps.put(ProducerConfig.VALUE_SERIALIZER_CLASS_CONFIG, JsonSerializer.class);
senderProps.put(JsonSerializer.TYPE_MAPPINGS, "foo:com.myfoo.Foo, bar:com.mybar.bar");

但我不清楚如何创造 Producerfactory 就像下面一样

@Bean
public ProducererFactory<Foo, Bar> kafkaProducerFactory(KafkaProperties properties,
JsonSserializer customSerializer) {

return new DefaultKafkaConsumerFactory<>(properties.buildProducerProperties(),
    customSerializer, customSerializer);
}

据我所知 Foo 必须是关键和 Bar 一定是值吧?这是什么 customSerializer ? 我正在寻找更清晰的例子与更多的信息。
我的问题是我想有个单身汉 ProducerFactory 以及 kafkatemplate 例如,它会向Kafka生成多种类型的消息 Foo , Bar , Car 有可能吗?

wribegjk

wribegjk1#

不;这

senderProps.put(JsonSerializer.TYPE_MAPPINGS, "foo:com.myfoo.Foo, bar:com.mybar.bar");

仅适用于仅使用属性时定义反序列化程序的情况。
当使用 DefaultKafkaConsumerFactory 以及 DefaultKafkaProducerFactory 如果构造函数直接获取完全构建的序列化程序/反序列化程序对象,则必须自己配置反序列化程序。

typeMapper = new DefaultJackson2JavaTypeMapper();
typeMapper.setIdClassMapping(myTypeMappingsMap);
deserializer = new JsonDeserializer();
deserlialzer.setTypeMapper(typeMapper);

(对于序列化程序也是如此)。

相关问题