Кафка для использования текстовых файлов сообщений - PullRequest
0 голосов
/ 21 марта 2019

Я получил требование подписаться на файлы сообщений в реальном времени, которые могут быть опубликованы из уже существующей установки MQ на стороне клиента в модели pub-sub. Когда я подпишусь на тему MQ для получения файлов сообщений, я буду использовать Kafka, чтобы ТОЛЬКО получить файлы, затем обработать их и сохранить в моей файловой системе с помощью любого предпочтительного API, такого как Python? Я ожидаю настройки, как показано ниже: -

Клиентский MQ ----> Настройка Kafka <---- API для приема и обработки (Python) ---> Файловая система

Когда файлы будут опубликованы в Kafka, буду ли я использовать Python для общения с брокером Kafka для получения файлов для дальнейшей обработки?

Примечание. Я не хочу, чтобы содержимое файла сообщений было повреждено в разных разделах. Вместо этого я хочу, чтобы полный файл был опубликован и использован.

Ответы [ 2 ]

1 голос
/ 21 марта 2019

Я хочу, чтобы полный файл был опубликован и использован.

Кафка не предназначена для доставки файлов ... По умолчаниюмаксимальный размер сообщения составляет всего 1 МБ (и, установив его намного выше, чем, возможно, 5 МБ, вы просто перегружаете соединения и хранилище брокеров).

Вместо этого вам следует настроить общую файловую систему (например, FTP, NAS)., HDFS, S3 и т. Д.), Затем только отправьте URI файла через Kafka , затем подключитесь к этой файловой системе после прочтения сообщения в получателе.Тогда у вас небольшие сообщения, и вам не нужно разбираться с разделами и порядком, поскольку у вас есть только ссылки на внешние системы, где хранятся целые файлы.

мне использовать Python для общения с брокером Kafka для получения файлов для дальнейшей обработки?

Подойдет любой язык.

1 голос
/ 21 марта 2019

Кафка хранит сообщения в формате (K, V). Все сообщения с одинаковым ключом будут помещены в один и тот же раздел. Также раздел может иметь сообщения с разными ключами. Но до тех пор, пока ваш производитель поместил данные файла, используя непротиворечивый ключ, то есть имя файла, он будет храниться в одном разделе.

Теперь вы можете использовать любой язык программирования для отправки сообщения в Kafka. Тем не менее, я бы порекомендовал вам использовать Java. Это потому, что все последние функции Kafka будут доступны для клиента Java сразу. Насколько я понимаю, внутренне kafka-python зависит от библиотеки librdkafka, которая скоро выпустит новую версию с последними функциями.

...