Nifi“按属性分区”如何将FlowFiles发送到其他Nifi节点?

lif*_*ort 1 apache-nifi

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

FlowFile -> type: A
FlowFile -> type: B
FlowFile -> type: C
Run Code Online (Sandbox Code Playgroud)

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

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

例如对于这个问题;

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 ?)
Run Code Online (Sandbox Code Playgroud)

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

Bry*_*nde 5

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