我能够使用 Java API 解码从 Kafka 读取的二进制文件,因为 DecoderFactory
中有 BinaryDecoder
。我正在尝试使用 C API 重复此操作。
然而,到目前为止还没有运气。设置值然后获取值很简单(模式和数据相互绑定(bind))。在将编码数据放入 Kafka 的情况下,我们需要使用提供的模式对数据进行解码。谁能阐明如何使用 C API 执行此操作?多谢!
比如我们会从Kafka中得到如下经过编码的数据
"site_visit^Z111.222.333.444^@^T1446231845^@^N1209600^@^F1.0"
我们有可用的模式(与上面的数据分开,就像我们使用 Java 所做的那样):
我希望解码后的数据是:
{"segment_name": "site_visit", "ip_address": "111.222.333.444", "received_at": "T1446231845", "ttl": "1209600", "probability": "1.0"}
最佳答案
您可以使用 libserdes以此目的。有示例(serdes-kafka-avro-client.c、kafka-serdes-avro-console-consumer.cpp)如何获得这样的 JSON 结果。
关于c - 如何使用 Avro C 库解码从 Kafka 读取的二进制文件?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/33863258/