2016-11-25 103 views

回答

17

Apache NiFi是一個強大而安全的框架,用於跨多個系統進行路由,轉換和交付數據。 NiFi可以與其他應用程序並行運行,但當整個系統(或集羣中的多個系統)專用於此係統時,它可以發揮最佳性能。它通常在TB級別使用SAN或RAID存儲,以獲取大量攝入的內容及其產生的出處。 UI允許多個用戶在同一臺​​機器上或集羣上同時快速修改流程。 NiFi的最新版本(1.1.0 RC1)包含170多個處理器,用於與各種系統和操作進行定製集成,並且在壓縮下載時爲762 MB。換句話說,NiFi是一個服務器級應用程序。

Apache MiNiFi是從公認的需求出發,將NiFi的功能作爲「代理」提供給「邊緣」 - 從物聯網和桌面級設備訪問數據,並在儘可能早的階段應用NiFi的主要功能。現在可以從各種協議收集數據,立即生成數據源,以實現更全面的治理和透明度,從源頭應用輕量級轉換,加密,優先化並冗餘路由回到雲中執行的更強大轉換或數據中心。

現在,所有這些行爲都可以使用自定義腳本執行,但遇到命令&控件(C2)的問題。隨着數百,數千甚至數百萬這些設備的存在,每個設備如何被監控和實現,以及當流量需要改變時會發生什麼?它可能是回報新的端點,更新收集或傳輸的頻率,或者處理來自設備的新指標或元數據。此手動過程不會縮放。 MiNiFi與NiFi整合後,可以使用NiFi中的用戶界面開發流程,並透明地轉換爲MiNiFi流程,並推送至全球各類代理商。

通過手動修改以去除不必要的處理器和功能,可以修剪NiFi以適應Raspberry Pi。但是它仍然需要JVM,並且有很多設備不支持它。 MiNiFi以Java和C++提供,並且佔位面積完全不同 - 針對Java代理(tar)的39 MB和針對C++代理(tar)的310K

MiNiFi的強大功能和實用性的一個很好的例子是最近在TU汽車底特律展上的一個演示,MiNiFi被裝載到位於「連接車」上的custom Qualcomm modem。隨着汽車的驅動,汽車中的組件會生成大量數據,並通過CANBUS進行處理。有些數據對於實時流回遠程處理中心非常重要 - 這些數據通過LTE連接傳輸。 LTE廣泛使用,但帶寬昂貴。同時,數據可能會比較大,但時間相關性較低(系統診斷等)可能會被批量和壓縮,然後在汽車位於已知熱點範圍內時通過WiFi爆發發送。 MiNiFi協調所有流量決策,並通過地理濃縮和控制平面反饋進行路由。這是一個短片Joe Niemiec explaining the process and showing the flow

您可以將該演示外推到許多其他用例。將MiNiFi視爲「好客人」是一種有益的做法 - 這是一款運行在硬件上的輕量級代理,可能用於不同的主要目的。無論是物聯網,收銀機/銷售點系統,汽車調制解調器,物理傳感器等,都與MiNiFi無關 - 它的工作是處理和提取這些數據,同時不會從主要功能中獲取不必要的資源。與NiFi相比,它又可以與其他應用程序同時運行,但理想情況下它具有可以最大限度地提高自身性能的專用資源。