所以,我可以成功地使用 python confluent-kafka api 来消费来自 Kafka 的文本编码消息。
当我尝试使用 Avro 编码(二进制)消息时,我得到一个 UnicodeDecodeError 异常:
msg = kafka_consumer.poll(timeout=2.0)
显然,Avro 编码的值是二进制的,而不是 Unicode。使用 Java API,我可以为 KafkaConsumer 构造函数指定 KafkaAvroDeserializer。 Python API 似乎没有与此相关的并行或类似配置选项。
可以传递给基础 librdkafka 的配置选项似乎没有指定任何自定义(de)serializer 或解码器或 avro 相关选项)。
https://github.com/edenhill/librdkafka/blob/master/CONFIGURATION.md
如何使用 Python confluent-kafka api 使用 Avro 编码的消息?
1 回答
在 irc,#kafka 上,其中一位开发人员说这是 confluent-python 版本 confluent-python 中的一个错误,它已在主分支中修复,修复程序将在下一个版本中发布。