如何在状态或事件发生变化时通知其他nifi处理器

eqqqjvef  于 2021-06-04  发布在  Kafka
关注(0)|答案(1)|浏览(294)

我计划有一个如下的nifi流,但是现在我被困在从一个处理器到另一个进程的通知中,状态发生了变化fail->fail->fail->success->success,我只需要在状态发生变化fail->success时通知并启动另一个进程。
在这里,我的发送处理器不断尝试发送到第三方服务器,如果发生任何故障(由于第三方服务器宕机),它会将流文件发送到其他进程,其他进程会将故障数据保存在某些数据存储中。
在发送处理器继续发送新文件流之后,当新文件进入时,当它成功地将新文件发送到第三方服务器时,这需要通知其他进程,以便其他进程可以开始从失败的数据存储中读取并开始将失败的记录发送到第三方服务器,所以现在失败的文件和新文件都将发送到第三方服务器。
我之所以采用这种方法,是因为第三方服务器不希望在他回来后在新文件中出现任何延迟。
这种方法的工作规模是每秒50000个文件,每个文件大约500字节,所以25mbs,将来我可能需要达到1gbps?
如何在某些状态更改时通知其他进程?

5lwkijsr

5lwkijsr1#

请看一下通知和等待处理器。基本上,您可以将文件路由到wait处理器,并告诉wait处理器您要监视的表达式。一旦连接到wait处理器的notify处理器将信号设置为期望值,文件就被释放。
这背后的魔力发生在两个处理器之间共享的distributedmapcache控制器服务中;你还必须创建一个。
核心nifi文档是完整的,但入门有点简洁。然而,我在这里和这里找到了一些很好的介绍性文章。第二个也有一些性能基准数据。作者设法从他的设置中获得了大约8MB/秒的速度,这远远超出了您的需要;但是他用的是更大的文件。
希望这有帮助!

相关问题