J'ai un processus qui écoute sur un IP:port
- en fait c'est spark streaming qui se connecte à une socket. Le problème est que je souhaite en quelque sorte créer un serveur qui se connecte à spark sur l'un port et les données sont diffusées sur ce serveur à partir d'un autre port.
Par exemple, l'exemple de streaming spark utilise l'utilitaire netcat (par exemple nc -lk 5005
). Cependant, j'ai un autre service qui écoute les messages entrants, puis recrache un message. J'ai donc besoin d'une sorte de serveur qui peut écouter les messages du service A et les transmettre pour déclencher.
Mon service A, repose sur des sockets. Et mon spark consommateur repose sur des sockets.
Voici ce que j'ai fait jusqu'à présent, c'est la redirection de port à port, mais cela ne semble pas fonctionner:
nc -X 4 -x 127.0.0.1:5005 localhost 5006
Avec l'idée que le service A:5005
-> socket -> 5006
-> Spark
Je n'arrive pas à trouver la bonne façon de faire ce travail.
Certaines réponses suggèrent ce qui suit:
socat tcp-l:5005,fork,reuseaddr tcp:127.0.0.1:5006
Mon récepteur de socket spark ne semble pas ou ne semble pas pouvoir se connecter. J'obtiens l'erreur: Error connecting to 127.0.0.1:5006 - Java.net.ConnectException: Connection refused
vous ne pouvez pas utiliser uniquement nc
pour le trafic direct, nc
n'avez pas keep-alive
ou fork
mode
vous devez utiliser un autre outil à la place nc
; par exemple, utilisez socat
ou ncat
cette commande écoute sur le port 5050
et tout transférer vers le port 2020
socat tcp-l:5050,fork,reuseaddr tcp:127.0.0.1:2020
ncat
lire la suiteNcat est un utilitaire de mise en réseau riche en fonctionnalités qui lit et écrit des données sur les réseaux à partir de la ligne de commande. Ncat a été écrit pour le projet Nmap comme une réimplémentation très améliorée du vénérable Netcat. Il
ncat -l localhost 8080 --sh-exec "ncat example.org 80"
Et vous pouvez utiliser un autre outil:
Écoutez sur le port 1234 et transférez-le au port 4567 à l'adresse "1.1.1.1"
./proxy tcp -p ":1234" -T tcp -P "1.1.1.1:4567"
Écoutez sur le port 1234 et transférez-le au port 4567 à l'adresse "1.1.1.1" source
./gost -L tcp://:1234/1.1.1.1:4567
redir ( code source )
./redir :1234 1.1.1.1:5678