Ich habe einen Prozess, der auf ein lauscht IP:port
- in der Tat ist es Spark-Streaming, das eine Verbindung zu einem Socket herstellt. Das Problem ist, dass ich irgendwie einen Server erstellen möchte, der eine Verbindung zu einem Port herstellt, und Daten von einem anderen Port auf diesen Server gestreamt werden.
Im Spark-Streaming-Beispiel wird beispielsweise das Dienstprogramm netcat verwendet nc -lk 5005
. Ich habe jedoch einen anderen Dienst, der auf eingehende Nachrichten wartet und dann eine Nachricht ausspuckt. Ich brauche also eine Art Server, der Nachrichten von Service A abhören und an Spark übergeben kann.
Mein Dienst A stützt sich auf Steckdosen. Und mein Spark-Konsument ist auf Steckdosen angewiesen.
Hier ist, was ich bisher getan habe, die Weiterleitung von Port zu Port, aber dies scheint nicht zu funktionieren:
nc -X 4 -x 127.0.0.1:5005 localhost 5006
Mit der Idee, dass der Service A:5005
-> Socket -> 5006
-> Spark
Ich kann nicht den richtigen Weg finden, um diese Arbeit zu machen.
Einige Antworten haben Folgendes vorgeschlagen:
socat tcp-l:5005,fork,reuseaddr tcp:127.0.0.1:5006
Der Empfänger meiner Zündkerze kann oder kann keine Verbindung herstellen. Ich erhalte den Fehler:Error connecting to 127.0.0.1:5006 - java.net.ConnectException: Connection refused
quelle
Antworten:
Sie können nicht nur
nc
für den Vorwärtsverkehr verwenden,nc
haben nichtkeep-alive
oderfork
ModusSie müssen stattdessen ein anderes Werkzeug verwenden
nc
. Verwenden Sie zum Beispielsocat
oderncat
Dieser Befehl überwacht den Port
5050
und leitet alle an den Port weiter2020
ncat
WeiterlesenUnd Sie können andere Werkzeuge verwenden:
Lauschen Sie Port 1234 und leiten Sie ihn an Port 4567 unter der Adresse "1.1.1.1" weiter.
Hören Sie auf Port 1234 und leitet es an Port 4567 auf Adresse „1.1.1.1“ Quelle
Redir ( Quellcode )
./redir :1234 1.1.1.1:5678
quelle
gost
sieht aber super aus ...)