我正在使用 kafka-node ( https://github.com/SOHU-Co/kafka-node ) 消费者来检索数据。我认为我得到的数据是用 SNAPPY 压缩的。得到数据后如何解压。我尝试使用 node-snappy ( https://github.com/kesla/node-snappy ) 来解压缩数据,但它没有用。
库中是否有任何选项可以将压缩设置为无?
任何人都使用 kafka-node 库从 kafka 获取数据..??
谢谢,陈杜
我正在使用 kafka-node ( https://github.com/SOHU-Co/kafka-node ) 消费者来检索数据。我认为我得到的数据是用 SNAPPY 压缩的。得到数据后如何解压。我尝试使用 node-snappy ( https://github.com/kesla/node-snappy ) 来解压缩数据,但它没有用。
库中是否有任何选项可以将压缩设置为无?
任何人都使用 kafka-node 库从 kafka 获取数据..??
谢谢,陈杜
我也遇到了这些确切的问题。我终于找到了解决办法!您可以在此处使用 kafkacat('like netcat for kafka')下载,这需要librdkafka。这使您能够使用 librdkafka C/C++ 库从命令行与 Kafka 进行交互。(不需要 JVM =D)
现在我们已经处理了这些依赖项,我们可以使用这个有趣的 node.js 存储库:node-kafkacat
您会发现这三个库之间可能有足够的文档来帮助您入门,并且与 github 上的其他一些 kafka-node 模块不同,它们似乎最近才更新。
到目前为止,我只在 Linux 和 Mac 上成功安装,但在我们的 Apache/Java 环境中运行良好。顺便说一句,我不是任何这些软件包的作者——只是一些一直希望你的问题在过去几周内得到解答的人。
默认情况下,压缩由生产者通过配置属性“compression.type”确定。目前支持 gzip、snappy 和 lz4。kafka-node 应该自动解压缩 gzip 和 snappy。我刚刚用 snappy 试了一下,这开箱即用。lz4 目前似乎没有由 kafka-node 实现。
可以使用配置属性“compression.type”来配置压缩:
如果您无法影响生产者,则可以考虑覆盖主题配置。
另外,请注意,kafka-node 可能不会像您期望的那样直接返回数据。例如,我的 (key, value) 对是 (integer, integer) 类型,我必须同时调用 message.key.readIntBE() 和 message.value.readIntBE() 来提取整数值。
希望这可以帮助!