1

为了分离逻辑,简化主要流程并重用处理器组,我正在寻找在 Apache NiFi 中实现进程间通信逻辑的东西。

到目前为止,我唯一能找到的是在主要流程中使用 InvokeHTTP 并在组中使用 HandleHTTPRequest/Response 对。但是,开放的 HTTP 端口过多可能会导致安全问题。有没有更好的方法来做同样的事情,即将流文件和属性路由到所需的处理器,然后返回?如果没有,我认为在 NiFi 中内置路由/拦截流处理器会很有帮助。

PS。我知道我可以将一个组变成一个模板并在流程中使用它,在这种情况下我不想这样做。我希望能够在多个流程中使用相同的逻辑。

4

2 回答 2

0

您可以使用输出和输入端口。

https://nifi.apache.org/docs/nifi-docs/html/user-guide.html

端口:使用一个或多个进程组构建的数据流需要一种将进程组连接到其他数据流组件的方法。这是通过使用端口来实现的。DFM 可以将任意数量的输入端口和输出端口添加到进程组并适当地命名这些端口。

在此处输入图像描述

于 2020-01-28T16:12:08.720 回答
0

内部远程端口可用于在 NiFi 1.11.x 及更高版本中未连接的处理器之间进行通信:配置站点到站点服务器 NiFi 实例

将 FlowFile 发送到未直接连接的进程组:

1-将远程进程组添加到 NiFi 并将其连接到当前实例。

在此处输入图像描述

2-将远程端口添加到要接收流文件的进程组。

在此处输入图像描述

3-启用已添加到进程组的远程端口。

在此处输入图像描述

从非直接连接的进程组接收流文件:

1-将远程输出端口添加到源进程组:

在此处输入图像描述 在此处输入图像描述

2-将远程进程组添加到 NiFi 并将其连接到当前实例。

在此处输入图像描述

3-启用远程进程组和活动输出端口:

在此处输入图像描述

于 2020-05-12T17:03:17.047 回答