我意識到,隨着NiFi,他們的文檔定義它,「持續改善發生在生產」。所以這不適合用作傳統的開發工具。然而,對於我正在研究的項目,已經決定這是我們將使用的工具,所以我不想辯論這個優點,因爲我意識到會出現一些問題。Apache NiFi的開發生命週期
例如,如果我將更改推送到現有環境(從分段到生產)並且在目標中進行了實時編輯,它們將被覆蓋。所以我對如何組織開發生命週期有疑問。
- 是否有可能合併更改這是由多個開發人員並行執行的(合併導出的XML模板文件)?我猜合併任何重大變化可能很困難,但沒有嘗試過。
- 如何管理版本的變化?我假設您可以將您的整個配置導出爲模板並將其檢入版本控制?
- 如何將流程部署到不同的服務器?您可以只部署一個庫存NiFi部署,然後使用NiFi REST API從導出的模板(如上所述)更新它?
- 如何管理部署到可能有不同配置的不同環境?你需要更新模板XML文件嗎?或者我可以從Zookeeper之類的東西中動態獲取它?
它看起來像[1],[2]和[3]是尚未實施。你能否提供一個關於如何解決當前版本中的陳述問題的更新?我認爲現在人們只是導入和導出模板。這有一些缺點,例如沒有真正的更新選項,您可以刪除舊版本並讀取新版本。 –
你是對的沒有真正的更新選項(對於現有的過程組)。今天的常見模式是推送新版本的進程組,然後更改提供該組的連接。這可以通過幾個REST調用以編程方式完成。用於流程管理,進程組變量和版本控制組件的apache nifi註冊表都與最新版本中的後兩者保持同步。下一版本看起來很可能已經爲版本化流程集成了apache nifi註冊表,並且在那一刻您將獲得真正的更新!應該很酷。 –