Apache nifi nifi如何在不同节点之间分发数据?

Apache nifi nifi如何在不同节点之间分发数据?,apache-nifi,Apache Nifi,我有一个具有3个节点的nifi集群。我正在流中使用invokeHTTP处理器。基本上,有一个post端点每天为我提供1-2GB JSON数据,我最终将其保存在POSTGRES中。流程运行良好,但我不确定是否有效地使用了由三个节点组成的整个集群 下面是我测试流程的两个场景,在这些场景中,我只是将InvokeHTTPProcessor的scheduling选项卡中的“Execution”模式从“All nodes”更改为“PRIMARY NODE” 1-使用执行模式“所有节点”,我看到3个请求从in

我有一个具有3个节点的nifi集群。我正在流中使用invokeHTTP处理器。基本上,有一个post端点每天为我提供1-2GB JSON数据,我最终将其保存在POSTGRES中。流程运行良好,但我不确定是否有效地使用了由三个节点组成的整个集群

下面是我测试流程的两个场景,在这些场景中,我只是将InvokeHTTPProcessor的scheduling选项卡中的“Execution”模式从“All nodes”更改为“PRIMARY NODE”

1-使用执行模式“所有节点”,我看到3个请求从invokeHTTP传递到下一个处理器。因此,我看到的不是2gb的json响应,而是6gb的响应被传递到下一个处理器,这意味着所有3个节点都在做同样的事情,给集群和数据库带来了不必要的负载

2-使用“主节点”执行模式,我看到1个请求从invokeHTTP传递到下一个处理器。但我认为在这种情况下,只使用了一个节点,而其他两个节点什么也不做,这不是集群的正确使用


使用整个集群的正确方法是什么?

通常,NiFi不会在节点之间自动移动数据,除非您将数据流设置为这样做。在您的情况下,您只希望InvokeHttp在一个节点上执行,因此应该将其设置为仅主节点

之后,这取决于是否可以将响应分解为各个部分。如果2GB JSON可以拆分为更小的流文件,那么您可以使用负载平衡连接将较小的部分分发到集群的其他节点,但是如果不能,那么您只能在主节点上运行整个流


谢谢你的链接,它真的很有用谢谢你的回复,我将添加一个负载平衡器,并尝试在集群中分割数据。