kafka node js客户端压缩问题与snappy

时间:2014-06-27 23:49:43

标签: javascript node.js apache-kafka snappy

我正在使用kafka-node(https://github.com/SOHU-Co/kafka-node)使用者来检索数据。我认为我得到的数据是用SNAPPY压缩的。我得到之后如何解压缩数据。我尝试使用node-snappy(https://github.com/kesla/node-snappy)来解压缩数据,但它没有用。

库中是否有任何选项可将压缩设置为无?

任何人都使用kafka-node库从kafka获取数据.. ??

谢谢, chandu

2 个答案:

答案 0 :(得分:2)

我也遇到了这些确切的问题。我终于找到了解决方案!您可以使用kafkacat('类似于netcat for kafka')download here,这需要librdkafka。这使您可以使用librdkafka C / C ++库从命令行与Kafka进行交互。 (不需要JVM = D)

现在我们已经处理了这些依赖项,我们可以使用这个有趣的node.js repo:node-kafkacat

您会发现这三个库之间可能有足够的文档来帮助您入门,而且与github上的其他一些kafka-node模块不同,它们似乎最近才更新。

到目前为止,我只在Linux和Mac上成功安装,但我们的Apache / Java环境正常运行。我不是任何这些软件包的作者,顺便说一下 - 只是有些人一直希望你的问题能在过去几周得到回答。

答案 1 :(得分:1)

默认情况下,压缩由生产者通过配置属性“compression.type”确定。目前支持gzip,snappy和lz4。 kafka-node应该自动解压缩gzip和snappy。我只是尝试了snappy,这开箱即用。此时lk4似乎不是由kafka-node实现的。

可以使用配置属性“compression.type”配置压缩:

如果您无法影响制作人,则可以考虑覆盖主题配置。

另请注意,kafka-node可能无法按预期直接返回数据。例如,我的(键,值)对是类型(整数,整数),我必须同时调用message.key.readIntBE()和message.value.readIntBE()来提取整数值。

希望这有帮助!