這篇主要會說明如何運用Funnel 來做開發
運用場景
我們來看看下面的這個例子,假設這是已經在 Running 的 nifi flow,我想要在 GenerateFlowFile 以及 UpdateAttribute 中間再加上一些功能,但是我不想讓中 間Queue 住的 FlowFile消失,我們能怎麼做呢?
假設我現在要在中間加上的是一個RouteAttribute的Processor,我們能怎麼做呢?
Step 1 . 新增 1 個 RouteOnAttribute
檔案裡面依據type作分流,只抓type A and type B
Step2. 新增 2 個 Funnel 和 RouteOnAttrubte 做連結
第2個Funnel 是為了保留原本 Queue 的 flowfile,避免後面如果邏輯有錯,這些Flowfile就不能用了
Step3. 將上面 4 個 指向UpdateAttribute的連結,指向這個分流的 Funnel
Step4. 驗證 RouteOnAttribute 邏輯是否正確
Step5. 驗證邏輯正確後,將原本測試的部分刪除
Step6. 將 RouteOnAttribute 指向後面的流程
如果unmatch我們將會Automatically Terminate Relationships
Step7. 再加上一個Funnel將原本的4個RelationShip指向它
Step8. 將 Funnel 上 Queue住的 Flowfile Relationship 指向 RouteOnAttribute
Step9.清掉右邊那 2 顆 Funnel
Step10. 將左邊 4 個 Relationship 指向 RouteOnAttribute
Step11. 最後將最後一個Funnel刪除