Hi Group
I have asked a question on Stack overflow. Link:
http://stackoverflow.com/questions/37271858/how-are-remote-actors-created-on-joining-of-new-nodes-in-akka.
I am just posting here as well to increase my chance of getting help.
Thanks.
Question:
Explaining my Akka cluster setup:
- I have remote actors in a multi node Akka cluster.
- Actors are behind Router which is of Singleton Type.
- Singleton Router is behind a Cluster Singleton Proxy.
- Also, on a side note, I have N type of actors, each doing a different
kind of task and managed by a different Router.
Code snippet(Java)
Config config = ConfigFactory.parseString(
"akka.remote.netty.tcp.port=" + 2551).withFallback(
ConfigFactory.load());
ActorSystem system = ActorSystem.create("CalcSystem", config);
Address[] addresses = {
AddressFromURIString.parse("akka.tcp://[email protected]:2551"),
AddressFromURIString.parse("akka.tcp://[email protected]:2552"),
AddressFromURIString.parse("akka.tcp://[email protected]:2553")
};
ActorRef router = system.actorOf(
ClusterSingletonManager.props(new ClusterRouterPool(new RoundRobinPool(
2),new ClusterRouterPoolSettings(100, 3, false, "")).
props(new RemoteRouterConfig(new RoundRobinPool(6), addresses).
props(Worker.createWorker())),PoisonPill.getInstance(),settings),
"workerRouter");
ClusterSingletonProxySettings proxySettings = ClusterSingletonProxySettings
.create(system);
ActorRef routerProxy = system.actorOf(ClusterSingletonProxy.props(
"/user/workerRouter", proxySettings), "routerProxy");
My doubt is regarding how make the list of Address a dynamic one? The
current hardcoded list of Address won't work in production.
As soon as new nodes join in the cluster, Routers/ClusterSingletonManager
should be able to recognize that and create remote actors on that new
node(It could be a brand new node added to an already existing cluster or
it could be the case of whole cluster booting up, for the very first time
or in the case of new code deployments)
As far as my seed nodes are concerned, they are mentioned in the akka.conf
file.
akka {
actor {
provider = "akka.cluster.ClusterActorRefProvider"
}
cluster {
seed-nodes = [
"akka.tcp://[email protected]:2551"]
}}
--
>>>>>>>>>> Read the docs: http://akka.io/docs/
>>>>>>>>>> Check the FAQ:
>>>>>>>>>> http://doc.akka.io/docs/akka/current/additional/faq.html
>>>>>>>>>> Search the archives: https://groups.google.com/group/akka-user
---
You received this message because you are subscribed to the Google Groups "Akka
User List" group.
To unsubscribe from this group and stop receiving emails from it, send an email
to [email protected].
To post to this group, send email to [email protected].
Visit this group at https://groups.google.com/group/akka-user.
For more options, visit https://groups.google.com/d/optout.