Cluster configuration

Clustering is achieved by sharing sessions between nodes in the system using Hazelcast technology. To ensure this works effectively, an external load balancer is required in front to manage the distribution of requests among the nodes. For optimal performance, the load balancer should be configured to use sticky sessions, ensuring that a user’s session is consistently directed to the same node. For more details on how Hazelcast facilitates clustering, please refer to the Hazelcast website.

Setup

Enabling cluster is done by editing the "config.json" file. At top level in the file add:

{
    "server": {
        "cluster": {
            "enabled": true,
            "config_path": "<path_to_cluster_config>/cluster.xml"
        }
    }
}

Note that example above is the entire content of "config.json". This will NOT be the case in real world.

Example

Attached is an example configuration. Download, edit and place where not removed on upgrade.

It is crucial that all nodes synchronise their clocks with the same time synchronisation servers. Since time is used as decision point selecting "last data".

If log shows "[AbstractXmlConfigHelper] WARN: Name of the hazelcast schema" the "xsi:schemaLocation" in cluster configuration file need to be updated. List of available schemas can be found at https://www.hazelcast.com/schema/config/ . Reference the one closest in version to the hazelcast version used. Current version is found under application lib-directory: hazelcast-xxx.jar

Disabling Hazel cast phone home

By default hazel cast sends usage data. This can be disabled by setting "hazelcast.phone.home.enabled" property in cluster configuration file:

....
   <properties>
        <property name="hazelcast.phone.home.enabled">false</property>
    </properties>
....    

Last updated