J'essaie donc de démarrer 2 instances d'une application Akka sur ma machine locale (dans des machines JVM séparées).Reliure de port nettoyeur de cluster Akka: Adresse déjà utilisée
Quand exemple # 1 commence isSeedNode = true (si le port est lié à 2552)
Lorsque par exemple # 2 commence isSeedNode = false (si le port doit se lier à 9999)
instance # 1 commence bien, mais quand l'instance # 2 commence, j'obtiens les exceptions ci-dessous, qui indiquent qu'il n'obéit pas à mes paramètres de port ...? Qu'est-ce que je fais mal
boolean isSeedNode = true;
Config remotingConf = ConfigFactory.parseString(
" remote {"+
" enabled-transports = [\"akka.remote.netty.tcp\"]\n"+
" netty.tcp {"+
" hostname = \"192.168.0.208\"\n"+
" port = "+ (isSeedNode ? 2552 : 9999)+"\n"+
" bind-port = "+ (isSeedNode ? 2552 : 9999)+"\n"+
" }"+
" }");
Config combined = remotingConf.withFallback(appConfConfig);
system = ActorSystem.create(name,ConfigFactory.load(combined));
Mon application.conf
akka {
actor {
provider = "akka.cluster.ClusterActorRefProvider"
debug {
autoreceive = on
lifecycle = on
unhandled = on
}
}
}
jeté d'exemple EXCEPTION # 2 (quand par exemple # 1 est déjà en cours d'exécution)
Causée par: org.jboss. netty.channel.ChannelException: Impossible de lier à: /192.168.0.208:2552 Causé par: java.net.BindException: Adresse déjà utilisée
Le chargement de la configuration est en repli dans le mauvais ordre, en utilisant la configuration par défaut, puis 'combiné' comme une solution de repli, plutôt que l'inverse. Faites-le 'combined.withFallback (ConfigFactory.load())' et il fonctionnera comme prévu. – johanandren