apache-nifi - Apache NiFi 通过远程进程组的不规则数据流

标签 apache-nifi

我正在评估 Apache NiFi 在项目中的使用情况。我有四个 NiFi v1.1.2 实例在 Ubuntu 14 系统上的云中运行。其中三个实例充当远程进程组(R1R2R3),其余实例(M1) >) 用于管理 RPG 之间的流程。 M1 生成一个 FlowFile,将该 FlowFile 通过由三个 RPG 组成的管道传递,并在最后记录该 FlowFile。 每个 RPG 只需将 R{id} 附加到 FlowFile 中的 ProcessedBy 属性,以便可以轻松查看数据处理的顺序。

我遇到的问题是订单 100% 不符合预期。我使用 2 个管道(P1P2),按照 R1->R2->R3R2- 的顺序遍历 RPG。 >R1->R3 分别。 我看到的是,大约 50% 的时间 P1 中的 FlowFile 不被 R2 处理,而在 P2 中它实际上反转了方向并被 R2 处理两次,因此流程顺序变为 R2->R1->R2->R3

编辑:

这是我在 M1 NiFi Flow 中的流程图像

最佳答案

我不相信远程进程组的行为符合您所期望的“函数语义”。奇怪的流文件流量模式正在发生,因为源自流左侧的流文件是从右侧的 RPG 输出中出现的(反之亦然),但这对于 RPG 输出端口来说是正确的行为。

从一个输入端口将流文件发送到远程流并不能保证它将通过同一 RPG 图节点上的输出端口“返回”。远程输出端口的多个监听器将分别接收一部分输出。以视觉方式将 RPG 输入与其输出连接起来是典型的、推荐的,并且可以说是组织流程的最不言自明的方式。但这不是必需的。

您可以在远程 NiFi 上创建不同的命名端口,为您提供更多远程输入/输出选项。

我仅使用两个 NiFi 制作了一个示例流程,其中 node1.nifi 向 node2.nifi 上的远程进程组发送和接收。 我组织流程是为了强调 RPG 输入和输出端口之间潜在的断开关系。

NiFi Remote Process Groups

三个 RPG 图形节点都引用 node2.nifi 上的相同 RPG,但输入和输出是分开的。产出在两个地点接收,这导致分配略有不均。

关于apache-nifi - Apache NiFi 通过远程进程组的不规则数据流,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/43848914/

相关文章:

apache-nifi - NIFI :Merging Flowfiles by filename in MergeContent processor

apache-nifi - Apache Beam 和 Apache Nifi 的区别

csv - Apache NiFi : How to compare multiple rows in a csv and create new column

json - 如何将字段添加到 Apache NiFi 中的 Avro 模式?

apache-nifi - 何时在 NiFi 处理器中使用 session.commit()

apache-nifi - 如何替换[和]之间存在的流文件的内容?

hadoop - nifi putHDFS 写入本地文件系统

postgresql - Nifi putsql处理器错误: Due to org. postgresql.util.PSQLException:列索引超出范围:1

apache-spark - Apache Spark 和 Nifi 集成

regex - 如何在 NiFi 中的内容处理器上指定路由的正则表达式?