我有以下两种情况,对于每种情况,我都需要建议使用哪种 NiFi 处理器:
我有在 NiFi 外部运行的 Restful Web 服务。 NiFi希望通过调用特定的restful 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 应该接受来自外部运行的应用程序的请求并处理该请求。
最佳答案
是的,NiFi 捆绑了满足您这两个要求的处理器。
对于场景 #1,您可以使用
GetHTTP
的组合。/PostHTTP
顾名思义,它们是 HTTP 客户端,它们使GET
和POST
分别调用。然而,后来社区提出了InvokeHTTP
提供更多功能,例如支持 NiFi 表达式语言、支持传入流文件等,对于场景 #2,您可以使用
ListenHTTP
或HandleHttpRequest
的组合/HandleHttpResponse
。后者实际上为您提供了更强大的 Web 服务实现,而前者是一种简单的 Web Hook 类型。我与ListenHTTP
合作得不多所以可能无法对此发表更多评论。
话虽如此,对于第二个场景,如果您的目标是使用 NiFi 统计数据,您可以直接访问 NiFi 的 REST API,而不是拥有具有 Web 服务功能的单独 NiFi 流。
有用的链接
关于apache-nifi - NiFi getHTTP 或 invokeHTTP 使用哪个处理器?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/54021142/