Nifi和Mini NiFi(MiNiFi)的区别

34

我只想知道 MiniFi 与 NiFi 有何不同?

我们是否具有任何额外的功能?为什么需要引入它?

任何想法或链接都将是巨大的帮助。

3个回答

61

Apache NiFi 是一个强大且安全的框架,用于在多个系统之间路由、转换和传递数据。NiFi 可以与其他应用程序并行运行,但当整个系统(或群集中的多个系统)专门用于它时,它的性能最佳。它通常使用 SAN 或 RAID 存储来处理摄取的大量内容和生成的溯源信息。UI 允许多个用户同时在同一台机器或跨群集快速修改流。NiFi 的最新发布版本(1.1.0 RC1)包含超过 170 个处理器,用于与各种系统和操作进行自定义集成,下载时压缩后为 762 MB。换句话说,NiFi 是一个服务器级应用程序。

Apache MiNiFi 是出于识别将 NiFi 的能力带到“边缘”作为“代理”的需求而开发的,通过访问来自物联网和桌面级设备的数据,并在最早的阶段应用 NiFi 的主要功能。现在可以从各种协议中收集数据,立即生成数据来源以进行更全面的治理和透明度,对源应用轻量级转换,加密,优先处理并冗余路由回云或数据中心中完成的更强大的转换。

现在,所有这些行为都可以使用自定义脚本执行,但是这时遇到了命令和控制(C2)问题。由于存在数百、数千甚至数百万个这些设备,每个设备都需要监视和提取,当流需要更改时会发生什么?可以报告新的端点,更新收集或传输的频率,或处理来自设备的新指标或元数据。这个手动过程无法扩展。通过 MiNiFi 与 NiFi 的集成,可以使用 NiFi 中的 UI 开发流程,并透明地将其翻译为 MiNiFi 流程并将其推送到全球代理类别。

通过手动修改来删除不必要的处理器和功能,可以使NiFi适合在树莓派上运行。但它仍然需要JVM,并且有很多设备不支持它。MiNiFi提供了Java和C++版本,并且其占用空间完全不同 -- Java代理(tar)占用39MB,C++代理(tar)占用310K。
一个很好的 MiNiFi 的实际应用例子是最近在 TU-Automotive Detroit 展览上的一次演示。MiNiFi 被加载到一个“连接车”中的定制高通调制解调器上。当汽车行驶时,由汽车各个组件产生大量数据并通过 CAN 总线路由传输以进行处理。某些数据需要实时流回远程处理中心,这些数据通过 LTE 连接传输。LTE 已经广泛可用,但带宽昂贵。同时,更大但不那么时间相关的数据(例如系统诊断等)可以被批处理和压缩,然后在汽车进入已知热点范围内的 WiFi 时进行突发式发送。MiNiFi 通过地理增强和控制平面反馈协调所有的流决策和路由。这里有一个简短的视频Joe Niemiec 解释了这个过程并展示了流程
您可以将此演示推广到许多其他用例中。将MiNiFi视为“好客人”很有帮助——它是一个在可能专注于不同主要目的的硬件上运行的轻量级代理程序。无论这是物联网、收银机/销售点系统、汽车调制解调器、物理传感器等,对MiNiFi来说都是无关紧要的——其工作是处理和转移此数据,同时不从主要功能中获取不必要的资源。与NiFi相比,NiFi可以同时运行其他应用程序,但最理想情况下,它有专用资源可以最大化其自身性能。

5

NiFi:它有更多预定义的处理器,具有用户界面,可以在运行时监视和配置任何内容,您还可以编写自己的处理器。

MiNiFi:与NIFI相比,它具有较少的处理器(轻量级)。易于部署。但它没有用户界面。您可以将其集成到NIFI中。


2
虽然NiFi非常强大且拥有众多处理器,但其JVM占用空间相当大。而MiNiFi体积小且资源消耗低。使用MiNiFi可以在聚合或使用NiFi处理器之前将一些预处理靠近源系统完成。MiNiFi没有界面,但相对容易部署。

网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接