2016-06-02 3 views
1

У меня есть рабочий веб-сервис с nifi, где я получаю http-запрос и могу отреагировать на него. Для теста я использую ReplaceText, чтобы добавить конкретный контент в ответ. Это работает, но моя цель - добавить файл потока (или его значение) в качестве содержимого httpresponse.Как добавить потоковый файл apache nifi в httpresponse

Usecase - это то, что я могу отправить информацию (от Kafka, HDFS, ...) в качестве ответа httprequest (REST Webservice).

Я искал и тестировал решение, но ничего не работает. Возможно ли это со стандартным процессором Apache NiFi (Hortonworks HDF)?

наилучшими пожеланиями n3

ответ

2

Вы должны быть в состоянии отправить содержимое любого файла потока обратно через HandleHttpResponse. Например, чтобы создать веб-сервис, который возвращает файлы из HDFS вы должны быть в состоянии сделать что-то вроде:

HandleHttpRequest -> FetchHDFS -> HandleHttpResponse

Вы, возможно, потребуется сделать некоторые вещи, прежде чем FetchHDFS, чтобы манипулировать данные, но это будет общий подход. Ключ в том, что вам нужен процессор, который принимает входящие файлы потока, поэтому для Kafka вы можете легко сделать то же самое с PutKafka, но не GetKafka, потому что он не принимает входящий файл потока.

Это GitHub репо есть пример веб-сервиса, который извлекает файл из локального диска: https://github.com/bbende/nifi-streaming-examples

Смотрите первое изображение, где он говорит: «Handle Запрос журнала Levels».

+0

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

+1

Для Kafka я говорил, что вы можете сделать веб-сервис, который выступал в роли продюсера Kafka, отправив запрос POST в HandleHttpRequest -> PutKafka -> HandleHttpResponse, но в настоящее время нет способа сделать веб-службу, которая выступать в качестве потребителя Кафки. Мы должны были бы увидеть, имеет ли смысл разрешать входящие потоковые файлы GetKafka, в настоящее время это исходный процессор. –

+0

Так что нет возможности отправить что-то из Кафки на основе HttpRequest? Hm ... должен ли он работать с MergeContent или ReplaceText? Я попробовал, но это не сработает. –

Смежные вопросы