Cluster typed examples in scala and java

This commit is contained in:
Christopher Batey 2018-01-05 17:14:52 +00:00 committed by Konrad `ktoso` Malawski
parent f17dc5c7f7
commit 45c7303d3f
10 changed files with 144 additions and 36 deletions

View file

@ -53,4 +53,4 @@ guardian actor spawns a pinger to ping it.
## Cluster Receptionist
The `Receptionist` also works in a cluster, the state for the receptionist is propagated via @ref:[distributed data](distributed-data.md).
The only difference is the serialisation concerns, see @ref:[clustering](cluster-typed.md).
The only difference is the serialisation concerns, see @ref:[clustering](cluster-typed.md#serialization).

View file

@ -23,10 +23,16 @@ Cluster API. All of the examples below assume the following imports:
Scala
: @@snip [BasicClusterExampleSpec.scala]($akka$/akka-cluster-typed/src/test/scala/docs/akka/cluster/typed/BasicClusterExampleSpec.scala) { #cluster-imports }
Java
: @@snip [BasicClusterExampleTest.java]($akka$/akka-cluster-typed/src/test/java/jdocs/akka/cluster/typed/BasicClusterExampleTest.java) { #cluster-imports }
And the minimum configuration required is to set a host/port for remoting and the `cluster`
Scala
: @@snip [BasicClusterExampleSpec.scala]($akka$/akka-cluster-typed/src/test/scala/docs/akka/cluster/typed/BasicClusterExampleSpec.scala) { #config }
: @@snip [BasicClusterExampleTest.java]($akka$/akka-cluster-typed/src/test/java/jdocs/akka/cluster/typed/BasicClusterExampleTest.java) { #cluster-imports }
Java
: @@snip [BasicClusterExampleTest.java]($akka$/akka-cluster-typed/src/test/java/jdocs/akka/cluster/typed/BasicClusterExampleTest.java) { #cluster-imports }
## Cluster API extension
@ -39,6 +45,8 @@ The references are on the `Cluster` extension:
Scala
: @@snip [BasicClusterExampleSpec.scala]($akka$/akka-cluster-typed/src/test/scala/docs/akka/cluster/typed/BasicClusterExampleSpec.scala) { #cluster-create }
Java
: @@snip [BasicClusterExampleTest.java]($akka$/akka-cluster-typed/src/test/java/jdocs/akka/cluster/typed/BasicClusterExampleTest.java) { #cluster-create }
The Cluster extensions gives you access to:
@ -54,11 +62,17 @@ If not using configuration to specify seeds joining the cluster can be done prog
Scala
: @@snip [BasicClusterExampleSpec.scala]($akka$/akka-cluster-typed/src/test/scala/docs/akka/cluster/typed/BasicClusterExampleSpec.scala) { #cluster-join }
Java
: @@snip [BasicClusterExampleTest.java]($akka$/akka-cluster-typed/src/test/java/jdocs/akka/cluster/typed/BasicClusterExampleTest.java) { #cluster-join }
Leaving and downing are similar e.g.
Scala
: @@snip [BasicClusterExampleSpec.scala]($akka$/akka-cluster-typed/src/test/scala/docs/akka/cluster/typed/BasicClusterExampleSpec.scala) { #cluster-leave }
Java
: @@snip [BasicClusterExampleTest.java]($akka$/akka-cluster-typed/src/test/java/jdocs/akka/cluster/typed/BasicClusterExampleTest.java) { #cluster-leave }
### Cluster subscriptions
Cluster `subscriptions` can be used to receive messages when cluster state changes. For example, registering
@ -70,11 +84,17 @@ This example subscribes with a `TestProbe` but in a real application it would be
Scala
: @@snip [BasicClusterExampleSpec.scala]($akka$/akka-cluster-typed/src/test/scala/docs/akka/cluster/typed/BasicClusterExampleSpec.scala) { #cluster-subscribe }
Java
: @@snip [BasicClusterExampleTest.java]($akka$/akka-cluster-typed/src/test/java/jdocs/akka/cluster/typed/BasicClusterExampleTest.java) { #cluster-subscribe }
Then asking a node to leave:
Scala
: @@snip [BasicClusterExampleSpec.scala]($akka$/akka-cluster-typed/src/test/scala/docs/akka/cluster/typed/BasicClusterExampleSpec.scala) { #cluster-leave-example }
Java
: @@snip [BasicClusterExampleTest.java]($akka$/akka-cluster-typed/src/test/java/jdocs/akka/cluster/typed/BasicClusterExampleTest.java) { #cluster-leave-example }
## Serialization
See [serialization](https://doc.akka.io/docs/akka/current/scala/serialization.html) for how messages are sent between