Je pense que je dois me connecter à un objet RMI distant sans passer par le registre, mais je ne sais pas comment.Connexion à un objet RMI sans registre
Ma situation est la suivante: je suis en train de mettre en œuvre un service de distribution d'emplois simple qui se compose d'un distributeur et de plusieurs travailleurs. Le distributeur possède un objet RMI enregistré auquel les clients se connectent pour envoyer des travaux et les travailleurs se connectent pour accepter des travaux.
Malheureusement, les hôtes du distributeur et du worker se trouvent derrière un pare-feu. Pour accéder à l'hôte du distributeur, je tunnelise deux ports (un pour le registre, un pour l'objet distributeur) via SSH, afin que je puisse accéder au registre et au distributeur depuis l'extérieur du pare-feu. Pour que cela fonctionne, je dois définir "-Djava.rmi.server.hostname = localhost" sur le distributeur JVM afin que les clients se connectent à leur port local, tunnellisé, au lieu du port sur l'hôte réel du distributeur, qui est bloqué. Cela crée un problème pour les travailleurs, car ils doivent se connecter directement au distributeur, mais à cause de la redirection "localhost" ils se comportent comme des clients et essayent de se connecter à un port sur leur propre hôte, qui est pas disponible, parce que je ne tunnelise pas les travailleurs (ce n'est pas pratique). Maintenant, si je pouvais me connecter à un objet distant directement en donnant le nom d'hôte et le port, je pourrais supprimer à la fois le registre sur le distributeur et le hack "localhost", et permettre aux travailleurs de se connecter correctement.
Comment faire cela? Ou existe-t-il une solution différente à ce problème?
qui a sauvé ma journée, merci beaucoup! – ChristophK