0

我有一个紧凑的主题,我尝试使用 kafkaTemplate 发送空值(墓碑),但出现异常

不支持的 Avro 类型。支持的类型为 null、Boolean、Integer、Long、Float、Double、String、byte[] 和 IndexedRecord

这是我的发送电话

kafkaTemplate.send(topic, GenericMessage<KafkaNull>(KafkaNull.INSTANCE))

以及 kafkaTemplate 配置的一部分

@Bean
fun kafkaTemplate(producerFactory: ProducerFactory<String, Any>) =
KafkaTemplate(producerFactory)

根据spring 文档,我必须使用 KafkaNull 作为空值。如何发送它没有任何例外?

4

1 回答 1

0

问题出在生产者工厂配置上。有

ProducerConfig.VALUE_SERIALIZER_CLASS_CONFIG to KafkaAvroSerializer::class.java

我添加了新的生产者工厂

ProducerConfig.VALUE_SERIALIZER_CLASS_CONFIG to StringSerializer::class.java

所以有墓碑发送代码

stringKafkaTemplate.send(internalTopic, key, null)
于 2021-01-19T14:34:08.723 回答