首页 > 解决方案 > Nifi“按属性分区”如何将FlowFiles发送到其他Nifi节点?

问题描述

我在 nifi 集群中有 3 个节点。我正在使用“按属性分区”将流文件分发到 nifi 集群中的其他 nifi 节点。例如,我为“按属性分区”使用“类型”属性;

FlowFile -> type: A
FlowFile -> type: B
FlowFile -> type: C

对于这种情况,具有相同“类型”的流文件将转到同一个节点。但是,假设一个节点(发送类型为 A 的流文件)已关闭。虽然“类型 B 和 C”的流文件将继续成功发送,但“类型 A”的流文件将保留在队列中(不会发送。)。

与此同时,一个“类型 XY”的 FlowFile 即将到来(第一次。意味着它从未出现过)。在这种情况下,这个传入文件是否只发送到主动接收数据的节点(发送“类型 B 和 C”的 FlowFiles 的节点)?或者,它可以将它发送到下降节点吗?

例如对于这个问题;

FlowFile -> type: A -----> Waiting in the queue

FlowFile -> type: B ------> successfully sent

FlowFile -> type: C ------> successfully sent

and

FlowFile -> type: XY ------> Which node can be sent to? (B or C ?)

我不希望 XY 类型的流文件进入不可用的集群队列。

标签: apache-nifi

解决方案


目前它使用集群中的所有节点(其中一些可能不可用)来计算一个节点,它并不知道之前是否看到过该值,因此带有XY的流文件仍然可以选择不可用的节点。数据将排队等待节点返回。如果该节点不会回来,那么您可以从集群中删除该节点,然后它将为所有排队的流文件重新计算一个新节点。


推荐阅读