5
|
venkata · 技术社区 · 6 年前 |
1
10
设想两个处理器A和B都连接到一个漏斗,然后漏斗连接到处理器C。 场景1-漏斗和处理器C之间的连接具有先进先出的优先顺序。 在这种情况下,漏斗和连接C之间队列中的流文件将严格按照它们到达队列的顺序进行处理。 场景2-漏斗和处理器C之间的连接具有最旧的流文件优先排序器。 在这种情况下,漏斗和连接C之间的队列中可能已经有流文件,但其中一个处理器将一个流传输到该队列,该流比该队列中的所有流文件都旧,它将跳到前面。 您可以想象,一些流文件来自流的不同部分,与其他流文件相比,这些流文件的处理时间要长一些,但它们最终都会进入同一队列,因此这些来自较长处理部分的流文件被视为较旧的流文件。 |
2
6
Apache NiFi处理来自许多不同来源的数据,并可以通过许多不同的处理器进行路由。让我们使用以下示例(忽略处理器类型,只关注标题):
首先,根据源/摄取点的不同,传入数据的相对速率可能不同。在这种情况下,数据库轮询每分钟执行一次,而HTTP轮询每5秒执行一次,文件拖尾每秒钟执行一次。因此,即使一条数据库记录比另一条数据库记录“早”59秒,如果在处理器的同一次执行中捕获到它们,它们也将同时进入NiFi,并且流文件(取决于拆分)将具有相同的原始时间。 如果进入系统的某些数据“脏”,它将被路由到处理器,由处理器“清理”它。此处理器需要3秒钟才能执行。 如果 清洁的 关系和 成功 从“清理数据”到“处理数据”的关系,您将无法控制这些流文件的处理顺序。但是,由于有一个漏斗可以合并这些队列,因此您可以在 已排队 排队,并控制该顺序。您是希望第一个流文件进入先处理的队列,还是希望先处理之前输入NiFi的流文件,即使输入了 此特定队列 更新的流文件之后? 这是一个人为的示例,但您可以将其应用于灾难恢复情况,其中某些数据在某个时间窗口内丢失,现在正在恢复,或者处理时间敏感数据的流程在经过一定时间后无效。如果使用背压或大批量(慢速)获取数据,您可以看到,在某些情况下,最旧的第一批数据的价值较低,反之亦然。 |
Arnab Biswas · Apache Nifi慢速群集问题 6 年前 |
Samuel Miller · 群集上的Nifi 1.5不受信任代理 6 年前 |
data_addict · 针对多个流文件的单一通知邮件Nifi 6 年前 |
watery · 如何通过MongoDB查询结果有条件地处理流文件? 6 年前 |