Кафка не предназначена для отправки файлов, только относительно небольшие события. Даже если вы отправляете файл построчно, вам нужно будет знать, как собрать файл обратно, чтобы обработать его, и, таким образом, вы эффективно делаете то же самое, что потоковая передача файлов через сырой сокет TCP.
Kafka имеет максимальный размер сообщения по умолчанию, равный 1 МБ, и хотя вы можете увеличить его, я бы не рекомендовал увеличивать его по сравнению с двузначными размерами МБ.
Как я могу отправлять большие сообщения с Kafka (более 15 МБ)?
Если вам действительно нужно получить такие данные, хотя Kafka, рекомендуемый шаблон - поместить ваши большие файлы во внешнее хранилище (HDFS, S3 и т. Д.), Затем поместить URI в файл в событии Kafka и позволить потребители имеют дело с чтением этого источника данных.
Если файлы имеют какую-либо структуру (например, страницы), вы можете использовать Spark и пользовательский Hadoop InputFormat для их сериализации и параллельной обработки данных. Впрочем, не обязательно проходить через Кафку. Вы можете попробовать Apache NiFi, который, как я слышал, лучше обрабатывает большие файлы (может, не ГБ).