如何在Kafka-Python中指定字节数组序列化器/解串器

时间:2018-02-15 20:59:50

标签: python apache-kafka kafka-consumer-api kafka-producer-api

Kafka的Producer API for Java有org.apache.kafka.common.serialization.ByteArraySerializer类,Consumer API有org.apache.kafka.common.serialization.ByteArrayDeserializer

如果您在Python中使用Kafka,是否有相应的类?

1 个答案:

答案 0 :(得分:0)

Python没有内置的字节数组序列化器/解串器,但实现起来并不难。例如,如果您想将字符串转换为生成器中的基础十六进制表示形式,则可以通过以下方式实现:

KafkaProducer(value_serializer=lambda v: binascii.hexlify(v.encode('utf-8')))

另一方面,如果您的消费者中有传入的字节,并希望将它们转换为字符串表示形式,则可以这样做。

KafkaConsumer(value_deserializer=lambda v: binascii.unhexlify(a).decode('utf-8'))

答案适用于Python 3 +。