【问题标题】:How to specify a byte-array serializer/deserializer in Kafka-Python如何在 Kafka-Python 中指定字节数组序列化器/反序列化器
【发布时间】:2018-07-26 17:41:40
【问题描述】:

Kafka 的 Java 生产者 API 中有一个 org.apache.kafka.common.serialization.ByteArraySerializer 类,消费者 API 有一个 org.apache.kafka.common.serialization.ByteArrayDeserializer

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

【问题讨论】:

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


【解决方案1】:

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+。

【讨论】:

    猜你喜欢
    • 2018-09-08
    • 2012-03-09
    • 2015-08-01
    • 1970-01-01
    • 1970-01-01
    • 2018-07-11
    • 1970-01-01
    • 1970-01-01
    • 2017-06-09
    相关资源
    最近更新 更多