如何在某些状态或事件更改时通知其他NiFi处理器

时间:2019-12-21 08:06:54

标签: apache-kafka apache-nifi

我计划有一个如下所示的NiFi Flow,但是现在我被困在通知某些状态更改失败时从一个处理器通知另一个进程失败->失败->失败->成功->成功,我需要通知并仅当状态从fail->成功改变时,才开始其他进程。

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

当新文件进入后,发送处理器继续发送新文件流时,如果成功将新文件发送到第三方服务器**,则需要通知其他进程,以便其他进程可以从失败的进程开始读取数据存储并开始将失败的记录发送到第三方服务器**,因此现在将失败的文件和新文件都发送到第三方服务器。

我正在使用方法,因为一旦第三方服务器返回,第三方服务器就不希望任何延迟 。

这种方法是否可以按每秒50000个文件的大小工作,每个文件约为500字节,所以25MB,将来我可能需要达到1GBps?

如何在状态更改时通知其他进程?

enter image description here

1 个答案:

答案 0 :(得分:0)

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

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

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

希望这会有所帮助!