我当前正在创建一个流程,将合并10K http响应的结果。我有几个问题。 (请参考下面的图片,我正在按图片编号问题)。
1)由于队列变得太长,可以将“ concurrent task”设置为10来调用HTTP吗?该怎么驱动呢?服务器上的内核数?
2)等待显示了很多数字,这只是它正在写入的字节数吗?还是使用了那么多内存?如果这只是写操作,那我可能还好...但是,如果它是一些内部队列,那么不久我可能会用光内存? 减少这个数字有意义吗?将“运行时间表”从0秒增加到20秒?
3)“背压数据大小阈值”到底是什么,值设置为1 GB,是否意味着,如果队列中ff的大小大于该大小,nifi将开始丢弃它?还是会以某种方式停止对上游处理器的处理?
答案 0 :(得分:2)
1)是的,在InvokeHttp上增加并发任务可能很有意义。我不会跳到10,但是会测试从1增加到2,从2增加到3,依此类推,直到它看起来更好为止。并发任务是可以同时执行处理器的线程数,您的NiFi实例的线程总数是在“计时器驱动的线程”下右上方菜单的控制器设置中定义的,您应该根据#的数量来设置计时器驱动的线程您拥有的CPU /核心。
2)处理器上的统计信息是最近5分钟的总计,因此“ In”是最近5分钟进入处理器的所有流文件的总大小。您可以看到“ Out”几乎是相同的#,这意味着几乎所有流文件也都已移出。
3)背压使上游处理器停止执行,直到降低背压阈值为止。数据大小阈值表示“当队列中所有流文件的总大小超过1GB时,请停止执行上游处理器,以便在下游处理器处理队列时不再有数据进入队列”。在自循环连接的情况下,我认为背压不会阻止处理器执行,否则它将陷入死锁,在死锁中它无法产生更多数据,但也无法在队列中工作。无论如何,除非您在队列上设置流文件过期,否则数据永远不会丢失。