我正在使用http://kafka.js.org/向Kafka生成消息,我正在处理的模式之一是十进制字节类型:
{"type": "bytes", "logicalType": "decimal", "precision": 11, "scale": 2}
我正在寻找一些关于如何将Node中的十进制转换为字节值以匹配上述模式的指导。
先谢谢你了。
我正在使用http://kafka.js.org/向Kafka生成消息,我正在处理的模式之一是十进制字节类型:
{"type": "bytes", "logicalType": "decimal", "precision": 11, "scale": 2}
我正在寻找一些关于如何将Node中的十进制转换为字节值以匹配上述模式的指导。
先谢谢你了。
2条答案
按热度按时间ldioqlga1#
您可以尝试https://www.npmjs.com/package/@ovotech/avro-decimal
这个软件包帮助我们解决了同样的问题
q5iwbnjs2#
我们还使用https://www.npmjs.com/package/@ovotech/avro-decimal解决了这个问题
下面是代码的相关部分:
我假设你使用@kafkajs/confluent-schema-registry。正如你所看到的,SchemaRegistry构造函数有一个可选参数,可以让你添加自定义序列化器和反序列化器(AvroDecimal将是我们的自定义小数序列化器/反序列化器)。
然后当你构建你的消息时,使用Decimal构造函数,如下所示
那就像往常一样发你的信息吧