2017-07-20 7 views
1

Ich mache eine Integration mit Apache NIFI, wo wir auf die Notwendigkeit, bidirektionale TCP zu tun haben. Bevor wir mit nur unidirektionalem TCP davongekommen sind.Apache NIFI bidirektionale TCP

Apache NIFI unterstützt unidirektionales TCP durch Funktionen wie 'ListenTCP' und 'PutTCP'. Bidirektionales TCP wird in der HTTP- und Websocket-Domäne durch Funktionen wie "HandleHttpRequest", "HandleHttpResponse", "ConnectWebSocket", "ListenWebSocket" und "PutWebSocket" unterstützt. Eine reine bidirektionale TCP-Mechanik sieht nicht offensichtlich aus.

Normalerweise tauche ich mit Python, Servicemix oder .. was auch immer .. in diesem Fall brauchen wir die Magie von NIFI in der Mitte.

(Legacy-Produkt A) - TCP- Nifi (Nifi Magie) -TCP- (Legacy-Produkt B)

So ..

Ich bin unter Berücksichtigung der oben Nifi liberies nehmen, die TCP unterstützen und die zusätzlichen Domänen und rippen sie nur auf TCP herunter. Erstellen von dedizierten TCP-Modulen. Ich gehe davon aus, dass es besser wäre, als das von Grund auf neu zu schreiben.

Aber bevor ich das tue. Gibt es etwas, das mir fehlt?

1) Hat NIFI bidirektionale TCP-Unterstützung, die ich irgendwie vermisse?

2) Wenn nein auf 1 .. ist der obige Plan zumutbar?

Dank

K

+1

'ListenTCP' und' PutTCP' haben eine Richtungsfunktion. wie für mich, um TCP-Anfrage/Antwort zu behandeln, müssen Sie schauen, wie es für 'HandleHttpRequest' &' HandleHttpResponse' getan wird und das gleiche wiederholen, aber mit TCP. – daggett

Antwort

1

Wenn Sie komfortables Schreiben TCP-Handler Python verwenden, können Sie die ExecuteScript oder InvokeScriptedProcessor Komponenten verwenden können beliebige Skript (Python, Groovy, Ruby, Lua, Javascript und Clojure laufen) innerhalb des Prozessorlebenszyklus, den Apache NiFi unterstützt. Mit dieser Methode können Sie die bidirektionale TCP-Kommunikation in einem Prozessor durchführen, die Daten an andere NiFi-Komponenten weiterleiten und sie dann an einen anderen Skriptprozessor weiterleiten, wo Sie mehr bidirektionale TCP-Kommunikation durchführen.