我有以下两种情况,对于每种情况,我都需要建议使用哪种NiFi处理器:
我在NiFi之外运行Restful Web服务。 NiFi希望通过调用特定的静态API来获取/发布/删除/更新一些数据。一旦Restful API接收到来自NiFi的请求,它就会将响应发送回NiFi。在此处使用哪个NiFi处理器?
在第二种情况下,我有一个在NiFi外部运行的应用程序。该应用程序具有自己的GUI。用户需要一些信息,因此他想向NiFi发送请求。在NiFi中,是否有任何处理器可以接受来自应用程序的请求,处理该请求并发送回响应?
我实际上使用getHTTP和invokeHTTP阅读了所有问题。
我最初尝试使用invokeHTTP处理器。我尝试使用invokeHTTP进行get和post调用。但我看不到在NiFi外部运行的Restful API的任何响应。
我没有尝试getHTTP。
我正在使用NiFi。 NiFi没有代码。
我希望NiFi应该能够调用外部运行的Restful API。我希望NiFi应该接受来自外部运行的应用程序的请求并处理该请求。
答案 0 :(得分:3)
是的,NiFi捆绑了可以满足您两个要求的处理器。
对于场景1,您可以使用GetHTTP
/ PostHTTP
的组合,顾名思义,HTTP客户端将生成GET
和POST
分别致电。但是,后来社区提出了InvokeHTTP
,它提供了更多功能,例如支持NiFi表达式语言,支持传入流文件等。
对于场景2,您可以使用ListenHTTP
或HandleHttpRequest
/ HandleHttpResponse
的组合。后者从字面上为您提供了更健壮的Web服务实现,而前者是一种简单的Web挂钩类型。我与ListenHTTP
的合作不多,所以大概无法对此发表更多评论。
在第二种情况下,如果您的目标是消耗NiFi统计信息,则可以直接访问NiFi的rest api,而不是使用具有Web服务功能的单独NiFi流。
有用链接