2017-07-20 127 views
1

我正在與Apache NIFI進行集成工作,我們偶然發現需要雙向TCP。在我們僅使用單向TCP之前,Apache NIFI雙向TCP

Apache NIFI通過諸如'ListenTCP'和'PutTCP'等功能支持單向TCP。通過諸如'HandleHttpRequest','HandleHttpResponse','ConnectWebSocket','ListenWebSocket'和'PutWebSocket'的功能,HTTP和websocket域中支持雙向TCP。一個純粹的雙向TCP機制看起來並不明顯。

正常情況下,我會用Python,Servicemix或..無論如何...但在這種情況下,我們需要中間的NIFI的魔力。

(傳統產品A) - TCP的NIFI(NIFI魔術)-TCP-(傳統產品B)

所以..

我正在考慮採取上述NIFI liberies確實支持TCP和額外的域名,並將它們分解爲TCP。創建專用的TCP模塊。我認爲這會比從頭開始寫這個更好。

但在此之前。 有什麼我失蹤了嗎?

1)NIFI是否支持雙向TCP?

2)如果1 ..上述計劃是否合理?

感謝

ķ

+1

'ListenTCP'和'PutTCP'具有一個方向功能。對於我來說,要處理TCP請求/響應,你必須看看它是如何處理'HandleHttpRequest'和'HandleHttpResponse',並重復相同的處理,但是使用TCP。 – daggett

回答

1

如果您使用的Python舒適的TCP處理程序,您可以使用ExecuteScriptInvokeScriptedProcessor組件運行任意腳本(Python和Groovy中,紅寶石,Lua中,Javascript和Clojure的)在Apache NiFi支持的處理器生命週期內。使用這種方法,您可以在處理器中執行TCP雙向通信,將數據路由到其他NiFi組件,然後將其路由到另一個腳本處理器,在那裏執行更多雙向TCP通信。