我有一个主题,其中的消息序列化到 protobuf。 我有一个带有合同的 .proto 文件,我想写一些类似的东西
read-kafka brokerAddress topicName startOffset | deserialize-proto myContract.proto
并有一些消息的文本表示转储到终端。
也许有人知道最简单的方法来做与我想要的类似的事情?
您可以读取消息(使用标志
--property line.separator=''
以避免分隔数据中的行)并将输出传递给二进制文件 protoc
kafka-console-consumer --bootstrap-server $YOU_KAFKA_BROKERS --topic $YOU_TOPIC --from-beginning --max-messages 1 --property line.separator='' | protoc --decode=you.proto.package.Message you/proto/path.proto
我是 milena 的作者,它正是这样做的。这是一个用于处理 protobuf Kafka 消息的小型 CLI,可将 protobuf 解码为行分隔的 json。