I am trying to set up an akka Cluster that includes a ClusterSingleton, ClusterSingletonManager and ClusterSingletonProxy which in turn seems to necessitate using a ClusterClient, ClusterReceptionist and DistributedPubSubMediator.
I am more or less following the typesafe activator code, but it is out-of-date (uses the old contrib code), so I've made modifications to match the 2.4 RC3 API. I am working through the complexity of this, and have made progress, but I am finding that the cluster client is sending messages to the ClusterReceptionist that are never being received. My current guess is that it has something to do with the fact that my ActorSystems seem to have a root path of akka://ClusterSystem whereas the actors are created with paths that look like akka.tcp://[email protected]:8888. For instance, here you can see that the ClusterSingletonManager creates the master with an akka://SomeSystem path: INFO - Singleton manager starting singleton actor [akka://ClusterSystem/user/master/singleton] INFO - ClusterSingletonManager state change [Start -> Oldest] DEBUG - Trying to identify singleton at [akka.tcp://[email protected]:8888/user/master/singleton] INFO - Singleton identified at [akka://ClusterSystem/user/master/singleton] DEBUG - Sending buffered messages to current singleton instance As for the ClusterClient talking to the ClusterReceptionist, the client is instantiated with an initial contact of Set(akka.tcp://[email protected]:8888/user/receptionist). However, the actors that are created by virtue of including the extensions are created in akka://ClusterSystem extensions = [ "akka.cluster.pubsub.DistributedPubSub", "akka.cluster.client.ClusterClientReceptionist" ] I tried using akka://ClusterSystem/user/receptionist as the initial contact path, but then I get: ERROR - No transport is loaded for protocol: [akka], available protocols: [akka.tcp] akka.actor.ActorInitializationException: exception during creation relevant config below: clusterSystem { akka { actor.provider = "akka.cluster.ClusterActorRefProvider" extensions = [ "akka.cluster.pubsub.DistributedPubSub", "akka.cluster.client.ClusterClientReceptionist" ] remote { enabled-transports = ["akka.remote.netty.tcp"] netty.tcp { hostname = "127.0.0.1" port = 8888 } } cluster { singleton { singleton-name = "singleton" role = "" hand-over-retry-interval = 60s } singleton-proxy { singleton-name = "singleton" role = "" singleton-identification-interval = 60s buffer-size = 1000 } client { *#this gets assigned programmatically* initial-contacts = [] *#..default stuff here* receptionist { # Actor name of the ClusterReceptionist actor, /system/receptionist name = receptionist # Start the receptionist on members tagged with this role. # All members are used if undefined or empty. role = "" # The receptionist will send this number of contact points to the client number-of-contacts = 1 # The actor that tunnel response messages to the client will be stopped # after this time of inactivity. response-tunnel-receive-timeout = 30s # The id of the dispatcher to use for ClusterReceptionist actors. # If not specified default dispatcher is used. # If specified you need to define the settings of the actual dispatcher. use-dispatcher = "" } } } } } workerSystem { akka { remote { enabled-transports = ["akka.remote.netty.tcp"] netty.tcp { hostname = "127.0.0.1" port = 9999 } } } } Hoping someone can see what I'm doing wrong... Thanks! -- >>>>>>>>>> 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 http://groups.google.com/group/akka-user. For more options, visit https://groups.google.com/d/optout.
