我用的是Kafka节点(https://github.com/sohu-co/kafka-node)使用者检索数据。我想我得到的数据是用snappy压缩的。如何在我得到数据后解压。我试过使用node snappy(https://github.com/kesla/node-snappy)去解压数据,但没用。
库中是否有选项将压缩设置为无?
有人使用Kafka节点库从Kafka获取数据吗。。??
谢谢,钱杜
我用的是Kafka节点(https://github.com/sohu-co/kafka-node)使用者检索数据。我想我得到的数据是用snappy压缩的。如何在我得到数据后解压。我试过使用node snappy(https://github.com/kesla/node-snappy)去解压数据,但没用。
库中是否有选项将压缩设置为无?
有人使用Kafka节点库从Kafka获取数据吗。。??
谢谢,钱杜
2条答案
按热度按时间0kjbasz61#
默认情况下,压缩由生产者通过配置属性“compression.type”确定。目前支持gzip、snappy和lz4。kafka节点应该自动解压缩gzip和snappy。我刚用snappy试过,这是现成的。此时,lz4似乎不是由kafka节点实现的。
可以使用配置属性“compression.type”配置压缩:
每位经纪人:https://kafka.apache.org/documentation/#brokerconfigs. 默认值:producer确定压缩
每个主题:https://kafka.apache.org/documentation/#brokerconfigs (进一步向下滚动)。默认值:producer确定压缩
每生产商:https://kafka.apache.org/documentation/#producerconfigs. 默认值:无
如果不能影响生产者,那么可以考虑重写主题配置。
另外,请注意kafka节点可能不会像您期望的那样直接返回数据。例如,我的(key,value)对是(integer,integer)类型,我必须同时调用message.key.readintbe()和message.value.readintbe()来提取整数值。
希望这有帮助!
zpgglvta2#
我也遇到了这些问题。我终于找到了解决办法!您可以在这里使用kafkacat('like netcat for kafka')下载,这需要librdkafka。这使您能够使用librdkafka c/c++库从命令行与kafka交互(不需要jvm=d)
既然我们已经处理了这些依赖关系,我们就可以使用这个有趣的node.js repo:node kafkacat
您会发现,这三个库之间可能有足够的文档来帮助您入门,而且与github上的其他kafka节点模块不同,它们似乎是最近更新的。
到目前为止,我只成功地安装了linux和mac,但是在apache/java环境下,一切都很顺利。顺便说一句,我不是这些软件包的作者,只是一个在过去几周一直希望你的问题能得到回答的人。