2016-07-07 125 views
0

所以,我可以成功地使用python confluent-kafka api來消費來自Kafka的文本編碼消息。confluent-kafka python avro消息

當我嘗試使用Avro的編碼(二進制)的消息,我得到一個異常的UnicodeDecodeError:

msg = kafka_consumer.poll(timeout=2.0) 

顯然,Avro的編碼值是二進制的,不是Unicode。通過Java API,我可以爲KafkaConsumer構造函數指定一個KafkaAvroDeserializer。 Python API似乎沒有並行或類似的配置選項。

可以傳遞給底層librdkafka的配置選項似乎沒有指定任何自定義(de)序列化器或解碼器或avro相關選項。

https://github.com/edenhill/librdkafka/blob/master/CONFIGURATION.md

如何消耗使用Python匯合卡夫卡API的Avro編碼的消息?

回答

1

關於irc,#kafka,其中一位開發人員說這是confluent-python 3.0版本中的一個bug,它已經在master分支中修復了,修復將在下一個版本發佈。