0

我正在使用 kafka 从源接收数据,我正在开发编写Node.jskafka-node用于连接到 kafka 服务器的消费者应用程序。另一方面,生产者被写入Java,他们正在使用一些 kafka 流媒体库来生成带有模式的 avro 消息。我能够接收消息,但它们是 avro 序列化的,下面是我收到的序列化消息格式 -

value: '\u0000\u0000\u0001�H\u0002\u00142020-10-01\u0002\u000e1000001\u0002\u000e2668422\u000202021-06-21T09:34:19.003Z\u0000\u0002\u000e3010985\u0002T83dc24eb6aac\u0002.2021-06-21T09:34:20.453'

我正在尝试反序列化它,但无法使用avscnpm 模块,因为 avsc 只接受缓冲区数据格式。我不确定 avro 消息数据格式的类型。

我们也有这些消息的模式注册。所以我只需要帮助来反序列化 node.js 中的消息我知道有 npm 模块avsc可以帮助对 avro 消息进行编码解码,但它仅适用于缓冲区。请帮助我了解如何反序列化 Nodejs 中的 avro 消息。

谢谢!!!

4

1 回答 1

0
const v8 = require("v8");

const str =
  "<'\u0000\u0000\u0001�H\u0002\u00142020-10-01\u0002\u000e1000001\u0002\u000e2668422\u000202021-06-21T09:34:19.003Z\u0000\u0002\u000e3010985\u0002T83dc24eb6aac\u0002.2021-06-21T09:34:20.453'>";

console.log(v8.deserialize(v8.serialize(str)));
console.log(`${Buffer.from(str, "utf8")}`);
于 2021-06-23T12:22:29.553 回答