Apache NiFi - 使用多个 FlowFiles 作为处理器的输入

sep*_*ram 3 apache-nifi

我有一个工作流程,其中两个或多个输入对它们执行了设置操作(并集、补集等)以生成单个输出。我希望必须编写一个处理器来自己完成设置逻辑,但是否有可能使用不同来源的多个流文件并同时处理它们?

Jam*_*mes 6

NiFi 处理器可以对其输入队列中的所有流文件进行操作。例如:

@Override
public void onTrigger(final ProcessContext context, final ProcessSession session) {
    List<FlowFile> flowFiles = session.get(context.getProperty(BATCH_SIZE).asInteger());
    if (flowFiles == null || flowFiles.size() == 0) {
        return;
    }
    // process flowFiles
    ...
Run Code Online (Sandbox Code Playgroud)

您可以使用漏斗组件将多个输入合并到一个输入队列中,然后可以共享相同的背压和优先级设置。

NiFi漏斗合并输入队列