Apache NiFi 不规则数据流通过远程进程组
Apache NiFi irregular data flow through Remote Process Groups
我正在评估 Apache NiFi 在一个项目中的使用。我在 Ubuntu 14 系统上的云中有四个 NiFi v1.1.2 运行 实例。其中三个实例充当远程进程组 (R1
、R2
和 R3
),其余实例 (M1
) 用于管理 RPG 之间的流程。
M1
生成一个FlowFile,通过由三个RPG组成的pipeline传递FlowFile,最后记录FlowFile。
每个 RPG 只是将 R{id}
附加到 FlowFile 中的 ProcessedBy 属性,因此可以很容易地看到处理数据的顺序。
我遇到的问题是订单在 100% 的时间里都不符合预期。我使用 2 个管道(P1
和 P2
)分别按 R1->R2->R3
和 R2->R1->R3
的顺序遍历 RPG。
我看到的是 P1
中的 FlowFile 约有 50% 的时间未被 R2
处理,而在 P2
中它实际上反转方向并由 R2
处理两次所以流程顺序变成 R2->R1->R2->R3
编辑:
这是我在 M1
中的流程图片
我不认为远程进程组的行为与您所期望的 "function semantics" 相同。奇怪的流文件流量模式正在发生,因为源自流左侧的流文件正在从右侧(和相反)的 RPG 输出中出现,但这是 RPG 输出端口的正确行为。
从一个输入端口向远程流发送流文件并不能保证它将通过同一 RPG 图节点上的输出端口 "return"。远程输出端口的多个侦听器将各自单独接收一部分输出。将 RPG 输入与其输出可视化连接是典型的、推荐的,并且可以说是组织流程的最不言自明的方式。但这不是必需的。
您可以在远程 NiFis 上创建不同的命名端口,为您提供更多远程 input/output 选项。
我只使用两个 NiFi 制作了一个示例流程,node1.nifi 发送到 node2.nifi 上的远程进程组并从中接收。
我组织流程以强调 RPG 输入和输出端口之间可能断开的关系。
三个 RPG 图节点都引用 node2.nifi 上的同一个 RPG,但输入和输出是分开的。产出在两个地点接收,导致分配略有不均。
我正在评估 Apache NiFi 在一个项目中的使用。我在 Ubuntu 14 系统上的云中有四个 NiFi v1.1.2 运行 实例。其中三个实例充当远程进程组 (R1
、R2
和 R3
),其余实例 (M1
) 用于管理 RPG 之间的流程。
M1
生成一个FlowFile,通过由三个RPG组成的pipeline传递FlowFile,最后记录FlowFile。
每个 RPG 只是将 R{id}
附加到 FlowFile 中的 ProcessedBy 属性,因此可以很容易地看到处理数据的顺序。
我遇到的问题是订单在 100% 的时间里都不符合预期。我使用 2 个管道(P1
和 P2
)分别按 R1->R2->R3
和 R2->R1->R3
的顺序遍历 RPG。
我看到的是 P1
中的 FlowFile 约有 50% 的时间未被 R2
处理,而在 P2
中它实际上反转方向并由 R2
处理两次所以流程顺序变成 R2->R1->R2->R3
编辑:
这是我在 M1
我不认为远程进程组的行为与您所期望的 "function semantics" 相同。奇怪的流文件流量模式正在发生,因为源自流左侧的流文件正在从右侧(和相反)的 RPG 输出中出现,但这是 RPG 输出端口的正确行为。
从一个输入端口向远程流发送流文件并不能保证它将通过同一 RPG 图节点上的输出端口 "return"。远程输出端口的多个侦听器将各自单独接收一部分输出。将 RPG 输入与其输出可视化连接是典型的、推荐的,并且可以说是组织流程的最不言自明的方式。但这不是必需的。
您可以在远程 NiFis 上创建不同的命名端口,为您提供更多远程 input/output 选项。
我只使用两个 NiFi 制作了一个示例流程,node1.nifi 发送到 node2.nifi 上的远程进程组并从中接收。 我组织流程以强调 RPG 输入和输出端口之间可能断开的关系。
三个 RPG 图节点都引用 node2.nifi 上的同一个 RPG,但输入和输出是分开的。产出在两个地点接收,导致分配略有不均。