2

我对Apache Kafka比较陌生。作为一个小项目的一部分,我试图将一个文本日志文件作为一条消息放入Kafka。我遇到了一些编码错误。 Kafka的java API(据我所知)包含大部分字符串编码的规定。是否可以在Kafka中将二进制文件(比如.mp3文件)作为单个消息?如果是,如何?

作为解决方法,我在卡夫卡中逐行扔了我的日志文件,每行代表一条消息,但这并不能解决我最初的问题陈述 - 一个文件作为一条消息。

回答

1

你应该包含错误信息。

无论如何,只要生产者/经纪人/消费者的maximum message size setting允许,就可以在一条消息中向卡夫卡发送任意大文件。
经纪人不关心数据的类型,因为他们以二进制格式存储数据。
顺便说一句我不确定在大文件中使用Kafka会有多高效,因为根据LinkedIn的测试,最佳缓冲区大小在64 - 128 kB范围内。
我会做一些测试,如果我是你:)

+0

感谢Marco的回复,但我的问题'怎么'仍然没有答案。如果我愿意,我会如何在卡夫卡录制93KB的录音? –

+1

当您发送更大的文件作为有效内容时,零拷贝很重要。请参阅:http://search-hadoop.com/m/uyzND1yOLCIogQoO1&subj=Re+Kafka+to+transport+binary+files E.g.你可以使用[kafkacat](https://github.com/edenhill/kafkacat)。例如:'$ kafkacat -P -b mybroker -t filedrop -p 0 myfile1.amr' –

相关问题