/vlingo-cluster

Cluster management for scalable JVM tools and applications running on vlingo/actors.

Primary LanguageJavaOtherNOASSERTION

vlingo-cluster

This is a very early stage release of the vlingo platform.

The vlingo-cluster supports scaling a JVM tool or application.

To build and test, make sure that you also build and install the following in the order shown:

consule:vlingo-common> mvn install

consule:vlingo-actors> mvn install

consule:vlingo-cluster> mvn install

The cluster is pre-configured for three nodes. To run a three-node cluster, start three console windows and type the following, one in each console:

consule1:vlingo-cluster> mvn exec:java -Dexec.args=node1

consule2:vlingo-cluster> mvn exec:java -Dexec.args=node2

consule3:vlingo-cluster> mvn exec:java -Dexec.args=node3

Each node will start up and join the cluster. It is likely that node3 will become the leader, but it's possible for another node to take the lead based on timing.

To play around with the nodes, go into one consult window and type ^C (interrupt). This will bring down the given node and the cluster will adjust. If you bring down the leader the cluster will elect a new leader. Starting the downed node again will enable it to re-join the cluster.

You can develop JVM applications with vlingo-cluster. See the following package and sample ClusterApplication:

io.vlingo.cluster.model.application ClusterApplication ClusterApplicationAdapter FakeClusterApplicationActor

Try it out. As the cluster changes states all of the activity and health conditions will be reported to the registered ClusterApplication. You can see how to configure your own ClusterApplication by changing the vlingo-cluster.properties file:

cluster.app.class = io.vlingo.cluster.model.application.FakeClusterApplicationActor

Have fun!