kafka节点js客户端压缩问题与snappy

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

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

任何人都使用kafka-node库来从kafka获取数据。

谢谢,chandu

我也遇到了这些确切的问题。 我终于find了解决办法! 你可以使用kafkacat('像netcat for kafka') 这里下载 ,这需要librdkafka 。 这使您可以使用librdkafka C / C ++库从命令行与Kafka进行交互。 (不需要JVM = D)

现在我们有了那些依赖关系,我们可以使用这个有趣的node.js repo: node-kafkacat

你会发现这三个库之间可能有足够的文档来启动,而不像github上的一些其他的kafka-node模块,它们似乎最近已经被更新了。

到目前为止,我只能成功安装在Linux和Mac上,但在我们的Apache / Java环境中,这些工作非常顺利。 我不是这些软件包中的任何一个的作者,顺便说一句,只是一些希望你的问题在过去几周会得到解答的人。

默认情况下,压缩是由生产者通过configuration属性'compression.type'确定的。 目前支持gzip,snappy和lz4。 kafka-node应该自动解压gzip和snappy。 我刚刚试了一下,这个开箱即用。 在这一点上,lz4似乎没有被kafka-node所实现。

压缩可以使用configuration属性'compression.type'进行configuration:

  • 每个经纪人: https : //kafka.apache.org/documentation/#brokerconfigs 。 默认值:制作者确定压缩
  • 每个主题: https : //kafka.apache.org/documentation/#brokerconfigs (向下滚动)。 默认值:制作者确定压缩
  • 按生产者: https : //kafka.apache.org/documentation/#producerconfigs 。 默认值:无

如果你不能影响制作人,那么你可以考虑重写主题configuration。

另外,请注意,kafka-node可能不会像您期望的那样直接返回数据。 例如,我的(键,值)对是types(整数,整数),我必须调用message.key.readIntBE()和message.value.readIntBE()来提取整数值。

希望这可以帮助!