如果我在key-serializer
属性yml文件中使用org.apache.kafka.common.serialization.StringSerializer
,Kafka中发布的键是正确的,但我得到SerializationException错误:Error deserializing Avro message for id -1
,当该消息被消费时。
但是当我使用io.confluent.kafka.serializers.KafkaAvroSerializer
时,我没有收到SerializationException错误,但是有一些前导字符与密钥一起添加。这些字符是\u00014H
,我不知道它们来自哪里。我使用UUID作为密钥,应用程序处于Sping Boot 中。
应该使用什么样的序列化器呢?我使用的值序列化器是io.confluent.kafka.serializers.KafkaAvroSerializer
2条答案
按热度按时间nbnkbykc1#
这可能是因为数据格式不正确,但没有进一步的信息,我不能说。你看过这本汇合指南吗?
https://docs.confluent.io/platform/current/schema-registry/serdes-develop/serdes-avro.html#avro-serializer
kxkpmulp2#
这些角色是“H”,我不知道他们是从哪里来的
它们来自您在使用Avro字节时使用StringDeserializer。
如果只有UUID字符串,那么就不需要Avro。Kafka有自己的UUID串行化器