用于Kafka avro的正确密钥序列化程序

hgtggwj0  于 2023-01-16  发布在  Apache
关注(0)|答案(2)|浏览(114)

如果我在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

nbnkbykc

nbnkbykc1#

这可能是因为数据格式不正确,但没有进一步的信息,我不能说。你看过这本汇合指南吗?
https://docs.confluent.io/platform/current/schema-registry/serdes-develop/serdes-avro.html#avro-serializer

kxkpmulp

kxkpmulp2#

这些角色是“H”,我不知道他们是从哪里来的
它们来自您在使用Avro字节时使用StringDeserializer
如果只有UUID字符串,那么就不需要Avro。Kafka有自己的UUID串行化器

相关问题