2016-01-20 55 views
1

集羣方案中的流文件如何在集羣節點上獲得負載均衡/分佈?例如,如果我有一個指定爲隔離的GetFile處理器,那麼來自該處理器的流文件如何分佈在羣集節點中?是否需要添加任何其他工作/處理器?NIFI - 隔離式處理器

回答

7

今天在Apache NiFi中,跨集羣的負載平衡問題有兩個主要答案。首先,您必須首先考慮數據如何進入集羣。其次,一旦它在羣集中,你需要重新平衡。

爲了將數據導入羣集,選擇自身可擴展的協議非常重要。提供排隊語義的協議對此很有幫助,而不提供排隊語義的協議是有問題的。作爲使用排隊語義的例子,考慮JMS隊列或Kafka或一些HTTP API。這些都是很棒的,因爲一個或多個客戶可以以隊列方式從他們那裏拉出來,從而傳播負載。一個不提供這種行爲的協議的例子會下注GetFile或GetSFTP等等。這些都是有問題的,因爲客戶必須分享他們看到的數據。爲了解決這些協議,我們已經轉向了ListSFTP和FetchSFTP的模型,其中ListSFTP出現在集羣中的一個節點(主節點)上,然後它使用NiFi的站點到站點特性來負載平衡到然後每個節點獲得它的工作份額,然後執行FetchSFTP來實際提取數據。現在也爲HDFS提供相同的模式。

在描述這種模式時,我也提到了站點到站點。這就是兩個nifi集羣如何共享數據,這對於站點間和站點間分配的需求非常有用。它也適用於在同一集羣內傳播負載。爲此,您只需將數據發送到同一個羣集,然後NiFi負責平衡和故障轉移,並檢測新節點和已刪除節點。

所以有很多選擇。這就是說我們可以做更多的事情,並且在將來我們計劃提供一種方式讓你在連接上表明它應該是自動負載平衡的,然後它會在幕後做我所描述的。

感謝 喬

+1

偉大的信息,喬。我們終於找出了Site to Site。再次感謝你的反饋。 – scarpacci

相關問題