The document discusses Akka cluster support in Scala. It provides logs from two nodes as they join a cluster. Node 1 starts up first and then logs when it detects Node 2 joining. Node 2 similarly logs its startup and detection of Node 1. The cluster supports features like automatic failure detection, elastic scaling, and no single point of failure. However, the document notes that actor partitioning, handoff, rebalancing, and stateful actor replication are not fully supported yet.
14. Cluster Log – Node 2
[INFO] [08/02/2013 02:43:24.276] [main] [Remoting] Starting remoting
[INFO] [08/02/2013 02:43:24.456] [main] [Remoting] Remoting started; listening on addresses
:[akka.tcp://ClusterSystem@127.0.0.1:2552]
[INFO] [08/02/2013 02:43:24.472] [main] [Cluster(akka://ClusterSystem)] Cluster Node
[akka.tcp://ClusterSystem@127.0.0.1:2552] - Starting up...
[INFO] [08/02/2013 02:43:24.535] [main] [Cluster(akka://ClusterSystem)] Cluster Node
[akka.tcp://ClusterSystem@127.0.0.1:2552] - Registered cluster JMX MBean [akka:type=Cluster]
[INFO] [08/02/2013 02:43:24.535] [main] [Cluster(akka://ClusterSystem)] Cluster Node
[akka.tcp://ClusterSystem@127.0.0.1:2552] - Started up successfully
[INFO] [08/02/2013 02:43:24.541] [ClusterSystem-akka.actor.default-dispatcher-3] [Cluster(akka://ClusterSystem)]
Cluster Node [akka.tcp://ClusterSystem@127.0.0.1:2552] - Metrics will be retreived from MBeans, and may be
incorrect on some platforms. To increase metric accuracy add the 'sigar.jar' to the classpath and the appropriate
platform-specific native libary to 'java.library.path'. Reason: java.lang.ClassNotFoundException:
org.hyperic.sigar.Sigar
[INFO] [08/02/2013 02:43:24.545] [ClusterSystem-akka.actor.default-dispatcher-3] [Cluster(akka://ClusterSystem)]
Cluster Node [akka.tcp://ClusterSystem@127.0.0.1:2552] - Metrics collection has started successfully
[INFO] [08/02/2013 02:43:24.563] [ClusterSystem-akka.actor.default-dispatcher-2]
[akka://ClusterSystem/user/clusterListener] Current members:
[INFO] [08/02/2013 02:43:24.820] [ClusterSystem-akka.actor.default-dispatcher-12] [Cluster(akka://ClusterSystem)]
Cluster Node [akka.tcp://ClusterSystem@127.0.0.1:2552] - Welcome from [akka.tcp://ClusterSystem@127.0.0.1:2551]
[INFO] [08/02/2013 02:43:24.828] [ClusterSystem-akka.actor.default-dispatcher-12]
[akka://ClusterSystem/user/clusterListener] Member is Up: akka.tcp://ClusterSystem@127.0.0.1:2551
[INFO] [08/02/2013 02:43:25.259] [ClusterSystem-akka.actor.default-dispatcher-3]
[akka://ClusterSystem/user/clusterListener] Member is Up: akka.tcp://ClusterSystem@127.0.0.1:2552
15. Cluster Log – Node 1
[INFO] [08/02/2013 02:42:26.947] [main] [Remoting] Starting remoting
[INFO] [08/02/2013 02:42:27.134] [main] [Remoting] Remoting started; listening on addresses :[akka.tcp://ClusterSystem@127.0.0.1:2551]
[INFO] [08/02/2013 02:42:27.149] [main] [Cluster(akka://ClusterSystem)] Cluster Node [akka.tcp://ClusterSystem@127.0.0.1:2551] - Starting up...
[INFO] [08/02/2013 02:42:27.211] [main] [Cluster(akka://ClusterSystem)] Cluster Node [akka.tcp://ClusterSystem@127.0.0.1:2551] - Registered cluster JMX MBean
[akka:type=Cluster]
[INFO] [08/02/2013 02:42:27.211] [main] [Cluster(akka://ClusterSystem)] Cluster Node [akka.tcp://ClusterSystem@127.0.0.1:2551] - Started up successfully
[INFO] [08/02/2013 02:42:27.217] [ClusterSystem-akka.actor.default-dispatcher-2] [Cluster(akka://ClusterSystem)] Cluster Node [akka.tcp://ClusterSystem@127.0.0.1:2551] -
Metrics will be retreived from MBeans, and may be incorrect on some platforms. To increase metric accuracy add the 'sigar.jar' to the classpath and the appropriate platform-
specific native libary to 'java.library.path'. Reason: java.lang.ClassNotFoundException: org.hyperic.sigar.Sigar
[INFO] [08/02/2013 02:42:27.221] [ClusterSystem-akka.actor.default-dispatcher-2] [Cluster(akka://ClusterSystem)] Cluster Node [akka.tcp://ClusterSystem@127.0.0.1:2551] -
Metrics collection has started successfully
[INFO] [08/02/2013 02:42:27.234] [ClusterSystem-akka.actor.default-dispatcher-3] [akka://ClusterSystem/user/clusterListener] Current members:
[INFO] [08/02/2013 02:42:31.350] [ClusterSystem-akka.actor.default-dispatcher-12] [akka://ClusterSystem/deadLetters] Message [akka.cluster.InternalClusterAction$InitJoin$]
from Actor[akka://ClusterSystem/system/cluster/core/daemon/firstSeedNodeProcess#-975951196] to Actor[akka://ClusterSystem/deadLetters] was not delivered. [1] dead letters
encountered. This logging can be turned off or adjusted with configuration settings 'akka.log-dead-letters' and 'akka.log-dead-letters-during-shutdown'.
[INFO] [08/02/2013 02:42:31.350] [ClusterSystem-akka.actor.default-dispatcher-12] [akka://ClusterSystem/deadLetters] Message [akka.cluster.InternalClusterAction$InitJoin$]
from Actor[akka://ClusterSystem/system/cluster/core/daemon/firstSeedNodeProcess#-975951196] to Actor[akka://ClusterSystem/deadLetters] was not delivered. [2] dead letters
encountered. This logging can be turned off or adjusted with configuration settings 'akka.log-dead-letters' and 'akka.log-dead-letters-during-shutdown'.
[INFO] [08/02/2013 02:42:31.350] [ClusterSystem-akka.actor.default-dispatcher-12] [akka://ClusterSystem/deadLetters] Message [akka.cluster.InternalClusterAction$InitJoin$]
from Actor[akka://ClusterSystem/system/cluster/core/daemon/firstSeedNodeProcess#-975951196] to Actor[akka://ClusterSystem/deadLetters] was not delivered. [3] dead letters
encountered. This logging can be turned off or adjusted with configuration settings 'akka.log-dead-letters' and 'akka.log-dead-letters-during-shutdown'.
[INFO] [08/02/2013 02:42:31.350] [ClusterSystem-akka.actor.default-dispatcher-12] [akka://ClusterSystem/deadLetters] Message [akka.cluster.InternalClusterAction$InitJoin$]
from Actor[akka://ClusterSystem/system/cluster/core/daemon/firstSeedNodeProcess#-975951196] to Actor[akka://ClusterSystem/deadLetters] was not delivered. [4] dead letters
encountered. This logging can be turned off or adjusted with configuration settings 'akka.log-dead-letters' and 'akka.log-dead-letters-during-shutdown'.
[INFO] [08/02/2013 02:42:31.350] [ClusterSystem-akka.actor.default-dispatcher-12] [akka://ClusterSystem/deadLetters] Message [akka.cluster.InternalClusterAction$InitJoin$]
from Actor[akka://ClusterSystem/system/cluster/core/daemon/firstSeedNodeProcess#-975951196] to Actor[akka://ClusterSystem/deadLetters] was not delivered. [5] dead letters
encountered. This logging can be turned off or adjusted with configuration settings 'akka.log-dead-letters' and 'akka.log-dead-letters-during-shutdown'.
[INFO] [08/02/2013 02:42:32.251] [ClusterSystem-akka.actor.default-dispatcher-2] [Cluster(akka://ClusterSystem)] Cluster Node [akka.tcp://ClusterSystem@127.0.0.1:2551] - Node
[akka.tcp://ClusterSystem@127.0.0.1:2551] is JOINING, roles []
[INFO] [08/02/2013 02:42:33.252] [ClusterSystem-akka.actor.default-dispatcher-12] [Cluster(akka://ClusterSystem)] Cluster Node [akka.tcp://ClusterSystem@127.0.0.1:2551] -
Leader is moving node [akka.tcp://ClusterSystem@127.0.0.1:2551] to [Up]
[INFO] [08/02/2013 02:42:33.254] [ClusterSystem-akka.actor.default-dispatcher-14] [akka://ClusterSystem/user/clusterListener] Member is Up:
akka.tcp://ClusterSystem@127.0.0.1:2551
[INFO] [08/02/2013 02:43:24.783] [ClusterSystem-akka.actor.default-dispatcher-12] [Cluster(akka://ClusterSystem)] Cluster Node [akka.tcp://ClusterSystem@127.0.0.1:2551] - Node
[akka.tcp://ClusterSystem@127.0.0.1:2552] is JOINING, roles []
[INFO] [08/02/2013 02:43:25.233] [ClusterSystem-akka.actor.default-dispatcher-2] [Cluster(akka://ClusterSystem)] Cluster Node [akka.tcp://ClusterSystem@127.0.0.1:2551] -
Leader is moving node [akka.tcp://ClusterSystem@127.0.0.1:2552] to [Up]
[INFO] [08/02/2013 02:43:25.234] [ClusterSystem-akka.actor.default-dispatcher-5] [akka://ClusterSystem/user/clusterListener] Member is Up:
akka.tcp://ClusterSystem@127.0.0.1:2552
16. Not Quite There Yet
- Actor Partitioning
- Actor Handoff
- Actor Rebalancing
- Stateful Actor Replication