2017-07-20 105 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通信。