【问题标题】:How to Notify other NiFi processor on some state or event change如何在某些状态或事件更改时通知其他 NiFi 处理器
【发布时间】:2019-12-21 08:06:54
【问题描述】:

我计划有一个像下面这样的 NiFi 流程,但现在我被困在从一个处理器通知其他进程的某些状态更改失败->失败->失败->成功->成功,我需要通知并仅当状态从失败->成功更改时才启动其他进程。

在这里,我的发送处理器不断尝试发送到第三方服务器,如果发生任何故障(由于第三方服务器关闭),它会将流文件发送到其他进程,并且其他进程将失败的数据保存在某些数据存储中。

发送处理器随着新文件的进入继续发送新文件流,当它成功将新文件发送到第三方服务器**,这需要通知其他进程,以便其他进程可以从失败开始读取数据存储并开始向第三方服务器发送失败记录**,所以现在失败的文件和新文件都被发送到第三方服务器。

我会采用这种方法,因为第三方服务器不希望在他回来后对新文件有任何延迟 .

这种方法是否适用于每秒 50000 个文件的规模,每个文件大约 500 字节,所以 25MB,将来我可能需要达到 1GBps?

如何通知其他进程一些状态变化?

【问题讨论】:

    标签: apache-kafka apache-nifi


    【解决方案1】:

    查看通知和等待处理器。基本上,您可以将文件路由到等待处理器并告诉等待处理器您要监视的表达式。一旦连接到等待处理器的通知处理器将信号设置为预期值,文件就会被释放。

    这背后的魔力发生在两个处理器之间共享的 DistributedMapCache 控制器服务中;您还必须创建那个。

    核心NiFi documentation 已完成,但入门有点简洁。不过,我发现了一些很好的介绍性文章herehere。第二个也有一些性能基准数据。作者设法从他的设置中获得了近 8 MB/秒的速度,这远远超出了您的需要;但是他使用了更大的文件。

    希望这会有所帮助!

    【讨论】:

    • 感谢您提供详细信息 .. 我只是对未来的扩展感到好奇,我目前的退休速度是 25MB/秒,1 年的下线要求是 1GB/秒。那么NiFi会横向扩展吗?如果它无法扩展,那么我可以通过在我的读取处理器中添加更多的 NiFi 节点来实现吗?
    猜你喜欢
    • 2013-01-16
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2021-10-30
    • 1970-01-01
    • 2021-06-05
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多