2015-04-27 1 views
1

J'utilise hazelcast 3.3 dans mon logiciel pour la mise en cache dans les clusters. J'ai basé mon code sur l'exemple suivant Stackoverflow tcp hazelcast example. (Mise à jour 2) Maintenant, je suis confronté au problème suivant: L'hôte sur lequel je lance mon programme dispose de diverses cartes réseau (=> plusieurs numéros IP). Je voudrais commencer diverses instances de mon programme sur la même machine en utilisant différentes interfaces (numéros IP) La configuration tcp pour ce qui semble êtreConfiguration TCPIP programmée Hazelcast pour plusieurs interfaces réseau

network.getInterfaces().setEnabled(true).addInterface("<MY IP NUMBER>"); 

Peu importe ce que IP je donne ici, sur le côté OS Hazelcast se lie toujours à 0.0.0.0 (toutes les adresses IP). Est-ce que vous voulez? Je m'attendrais à ce que hazelcast se lie seulement à une adresse IP spécifique. Est-ce que hazelcast fait le filtrage de paquets seul et donc se lie à toutes les interfaces en même temps? Cela signifie que je ne peux pas utiliser le même numéro de port pour mes diverses instances de programme en cours car la liaison à 0.0.0.0 échouera bien sûr à démarrer le second client (ce qui arrive)

+0

Peut-être que cette solution pourrait aussi aider: https://stackoverflow.com/a/45745402/185919 –

Répondre

1

Étudier la documentation Hazelcast (Mise en réseau) C'était définitivement dit que Hazelcast par défaut se lie à toutes les interfaces réseau. Pour changer cela il y a cette propriété System: hazelcast.socket.bind.any La documentation dit: set à false et il ne liera que sur les interfaces spécifiées. Je ne l'ai pas vérifié mais ça sonne comme la solution à mon problème.

EDIT: J'ai essayé maintenant et cela a fonctionné. Hazelcast seulement connecté à l'interface donnée.